ここでの簡単な質問:私はmatplotlib.pyplot
を使って私の凡例のサイズを小さくしようとしています(すなわち、テキストはもっと小さくなります)。私が使っているコードはこんな感じです。
plot.figure()
plot.scatter(k, sum_cf, color='black', label='Sum of Cause Fractions')
plot.scatter(k, data[:, 0], color='b', label='Dis 1: cf = .6, var = .2')
plot.scatter(k, data[:, 1], color='r', label='Dis 2: cf = .2, var = .1')
plot.scatter(k, data[:, 2], color='g', label='Dis 3: cf = .1, var = .01')
plot.legend(loc=2)
prop
キーワードを調整して、凡例の個々のフォントサイズを設定できます。
plot.legend(loc=2, prop={'size': 6})
これはmatplotlib.font_manager.FontProperties
プロパティに対応するキーワードの辞書を取ります。凡例については のドキュメントを参照してください :
キーワード引数:
prop: [ None | FontProperties | dict ] A matplotlib.font_manager.FontProperties instance. If prop is a dictionary, a new instance will be created with prop. If None, use rc settings.
バージョン 1.2.1 では、キーワードfontsize
を使用することもできます。
これはすべきです
import pylab as plot
params = {'legend.fontsize': 20,
'legend.handlelength': 2}
plot.rcParams.update(params)
その後でプロットを行います。
他にもたくさんのrcParamsがありますが、それらはmatplotlibrcファイルで設定することもできます。
またおそらくmatplotlib.font_manager.FontProperties
インスタンスを渡してそれを変更することができますが、これはどうすればよいかわかりません。 - > Yannの答えを見てください。
ポイントのサイズとは別に、いくつかの名前付き フォントサイズ もあります。
xx-small
x-small
small
medium
large
x-large
xx-large
使用法:
pyplot.legend(loc=2, fontsize = 'x-small')
import matplotlib.pyplot as plt
を使う
方法1:凡例を呼び出すときのフォントサイズを指定する(繰り返し)
plt.legend(fontsize=20) # using a size in points
plt.legend(fontsize="x-large") # using a named size
この方法では、作成時に各凡例のフォントサイズを設定できます(異なるフォントサイズで複数の凡例を表示できます)。ただし、凡例を作成するたびにすべてを手動で入力する必要があります。
(注:@ Mathias711は彼の答えに利用可能な名前付きfontsizesをリストしました)
方法2:rcParamsでフォントサイズを指定する(便利)
plt.rc('legend',fontsize=20) # using a size in points
plt.rc('legend',fontsize='medium') # using a named size
この方法ではデフォルトの凡例のfontsizeを設定します。方法1を使用して指定しない限り、すべての凡例が自動的にそれを使用します。 。
名前付きサイズを使用する場合'medium'
の場合、凡例のテキストはrcParams
のグローバルfont.size
に合わせて拡大縮小されます。 font.size
を変更するにはplt.rc(font.size='medium')
を使います
凡例のサイズを調整するための設定は複数あります。私が最も役立つと思う2つは、次のとおりです。
legend(..., labelspacing=0.2)
はエントリ間の間隔を2ポイントに減らします。私のインストールのデフォルトは約0.5です。legend(..., prop={'size':8})
を使用して8ポイントフォントを設定できます。私のインストールのデフォルトは約14ポイントです。さらに、 の凡例ドキュメント には、borderpad
、handlelength
、handletextpad
、borderaxespad
、およびcolumnspacing
を含む、その他のいくつかのパディングおよびスペースパラメーターがリストされています。これらはすべて、複数のフォントサイズにおいても、ラベルスペースおよび面積と同じ形式に従います。
これらの値は、 matplotlibrcファイル を使用してすべての図のデフォルトとして設定することもできます。
私のインストールでは、FontPropertiesはテキストサイズを変更するだけですが、それでもまだ大きすぎて間隔が空いています。 pyplot.rcParams
:legend.labelspacing
にパラメータが見つかりました。これはフォントサイズの数分の1に設定されていると思います。私はそれを変えました
pyplot.rcParams.update({'legend.labelspacing':0.25})
Pyplot.legend関数への指定方法がわからない
prop={'labelspacing':0.25}
または
prop={'legend.labelspacing':0.25}
エラーで戻ってきます。