2016-11-23 10 views
0

シーベルトのFacetGrid内でティッシュラベルのプロパティをカスタマイズするにはどうすればよいですか?不必要に複雑なようだFacetGridオブジェクトのaxesアレイを介しseabornのfacetgrid xticksとlabelsをカスタマイズする

import matplotlib.pylab as plt 
import seaborn as sns 
df1 = pandas.DataFrame({"x": np.random.rand(100), 
         "y": np.random.rand(100)}) 
df1["row"] = "A" 
df1["col"] = "1" 
df2 = pandas.DataFrame({"x": np.random.rand(100), 
         "y": np.random.rand(100) + 1}) 
df2["row"] = "A" 
df2["col"] = "2" 
df = pandas.concat([df1, df2]) 
g = sns.FacetGrid(df, row="row", col="col", hue="col") 
g.map(plt.scatter, "x", "y") 
print g.axes 
row, col = g.axes.shape 
for i in range(row): 
    for j in range(col): 
     ax = g.axes[i, j] 
     print "ax: ", ax.get_xticklabels() 
     ax.set_xticklabels(ax.get_xticklabels(), fontsize=6) 

私の解決策の繰り返し処理:例では、私は唯一のx軸ticklabelsのフォントサイズを変更したいの下に。私はfontscaleがグローバルに設定することができますが、私はx軸のticklabelフォントを変更したいだけです。これを行うには良い方法がありますか?ラベルのスタイルを科学的表記にカスタマイズする方法もありますか?

答えて

0

ループを簡略化するには、flattenメソッドを使用します。私はまた、科学記法で書式を設定する方法を追加しました。 .0eは、小数点以下が0の科学記法を意味します。

import matplotlib.ticker as tkr 

for ax in g.axes.flatten(): 
    ax.set_xticklabels(ax.get_xticklabels(), fontsize=6) 
    ax.xaxis.set_major_formatter(
     tkr.FuncFormatter(lambda x, p: "{:.0e}".format(x))) 
関連する問題