mik*_*ike 282 python size matplotlib legend
这里有一个简单的问题:我试图将我的图例的大小设置得更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)
Run Code Online (Sandbox Code Playgroud)
Yan*_*ann 479
您可以通过调整prop关键字为图例设置单独的字体大小.
plot.legend(loc=2, prop={'size': 6})
Run Code Online (Sandbox Code Playgroud)
这将获取与matplotlib.font_manager.FontProperties属性对应的关键字字典.请参阅图例文档:
关键字参数:
Run Code Online (Sandbox Code Playgroud)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.
Mau*_*uro 56
这应该做
import pylab as plot
params = {'legend.fontsize': 20,
'legend.handlelength': 2}
plot.rcParams.update(params)
Run Code Online (Sandbox Code Playgroud)
然后做剧情.
还有很多其他的rcParams,它们也可以在matplotlibrc文件中设置.
也许你可以通过一个matplotlib.font_manager.FontProperties实例改变它,但我不知道该怎么做. - >看Yann的回答.
Mat*_*711 38
除了点数之外,还有一些命名的fontsizes:
xx-small
x-small
small
medium
large
x-large
xx-large
Run Code Online (Sandbox Code Playgroud)
用法:
pyplot.legend(loc=2, fontsize = 'x-small')
Run Code Online (Sandbox Code Playgroud)
bin*_*nev 38
运用 import matplotlib.pyplot as plt
方法1:调用图例时指定fontsize(重复)
plt.legend(fontsize=20) # using a size in points
plt.legend(fontsize="x-large") # using a named size
Run Code Online (Sandbox Code Playgroud)
使用此方法,您可以在创建时为每个图例设置fontsize(允许您使用不同的字体大小的多个图例).但是,每次创建图例时都必须手动键入所有内容.
(注意:@ Mathias711在他的回答中列出了可用的命名fontsizes)
方法2:在rcParams中指定fontsize(方便)
plt.rc('legend',fontsize=20) # using a size in points
plt.rc('legend',fontsize='medium') # using a named size
Run Code Online (Sandbox Code Playgroud)
使用这种方法,你设置的默认传奇字号,所有的传说会自动使用,除非你指定,否则使用方法1.这意味着你可以在你的代码的开头设置你的传奇字号,而不用担心它设置为每个单独的传说.
如果您使用命名大小,例如'medium',图例文本将与全局font.size输入缩放rcParams.改变font.size用途plt.rc(font.size='medium')
Bry*_*n P 19
调整图例大小有多种设置.我认为最有用的两个是:
legend(..., labelspacing=0.2)将条目之间的间距减少到2个点.我安装的默认值约为0.5.legend(..., prop={'size':8}).我安装的默认值大约是14点.此外,图例的文档中列出的许多其他填充和间距参数,包括:borderpad,handlelength,handletextpad,borderaxespad,和columnspacing.这些都遵循与labelspacing相同的形式,并且也是fontsize的倍数.
也可以使用matplotlibrc文件将这些值设置为所有数字的默认值.
Ale*_*din 12
现在在 2021 年,使用 matplotlib 3.4.2,您可以设置图例字体
plt.legend(title="My Title", fontsize=10, title_fontsize=15)
Run Code Online (Sandbox Code Playgroud)
其中fontsize是图例中项目title_fontsize的字体大小, 是图例标题的字体大小。matplotlib 文档中的更多信息
小智 6
plot.legend(loc = 'lower right', decimal_places = 2, fontsize = '11', title = 'Hey there', title_fontsize = '20')
Run Code Online (Sandbox Code Playgroud)
在我的安装中,FontProperties只更改文本大小,但它仍然太大并且间隔开.我在pyplot.rcParams:中找到了一个参数legend.labelspacing,我猜它被设置为字体大小的一小部分.我用它改了
pyplot.rcParams.update({'legend.labelspacing':0.25})
Run Code Online (Sandbox Code Playgroud)
我不知道如何将它指定给pyplot.legend函数 - 传递
prop={'labelspacing':0.25}
Run Code Online (Sandbox Code Playgroud)
要么
prop={'legend.labelspacing':0.25}
Run Code Online (Sandbox Code Playgroud)
回来时出错了.