web-dev-qa-db-ja.com

Seaborn FacetGridを使用してフォントサイズを変更するにはどうすればよいですか?

factorplotseabornを使用してデータをプロットし、facetgridオブジェクトを取得しましたが、そのようなプロットで次の属性を設定する方法を理解できません。

  1. 凡例のサイズ:多くの変数をプロットすると、小さなフォントで非常に小さな凡例が表示されます。
  2. Yおよびxラベルのフォントサイズ(上記と同様の問題)
37
james pardon

sns.set()の呼び出しでフォントを拡大できます。

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
x = np.random.normal(size=37)
y = np.random.lognormal(size=37)

# defaults
sns.set()
fig, ax = plt.subplots()
ax.plot(x, y, marker='s', linestyle='none', label='small')
ax.legend(loc='upper left', bbox_to_anchor=(0, 1.1))

enter image description here

sns.set(font_scale=5)  # crazy big
fig, ax = plt.subplots()
ax.plot(x, y, marker='s', linestyle='none', label='big')
ax.legend(loc='upper left', bbox_to_anchor=(0, 1.3))

enter image description here

80
Paul H

FacetGridプロットは、かなり小さなラベルを作成します。 @ paul-hはsns.setフォントのスケーリングを変更する方法として、font_scaleすべてのプロットの設定。

seaborn.plotting_context 現在のプロットのみの設定を変更するには:

with sns.plotting_context(font_scale=1.5):
    sns.factorplot(x, y ...)
22
achennu

@ paul-Hコードを少し変更して、x/y軸と凡例のフォントサイズを個別に設定できるようにしました。それが役に立てば幸い:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
x = np.random.normal(size=37)
y = np.random.lognormal(size=37)

# defaults                                                                                                         
sns.set()
fig, ax = plt.subplots()
ax.plot(x, y, marker='s', linestyle='none', label='small')
ax.legend(loc='upper left', fontsize=20,bbox_to_anchor=(0, 1.1))
ax.set_xlabel('X_axi',fontsize=20);
ax.set_ylabel('Y_axis',fontsize=20);

plt.show()

これは出力です:

enter image description here

3
Sergio Cobo

伝説のために、これを使用できます

plt.setp(g._legend.get_title(), fontsize=20)

Gは、関数を呼び出して作成したfacetgridオブジェクトです。

1
Hielke Walinga