简单的问题是:我尝试使用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)
9条答案
按热度按时间wsewodh21#
可以通过调整
prop
关键字为图例设置单独的字体大小。这需要一个与
matplotlib.font_manager.FontProperties
属性对应的关键字字典。请参见文档中的图例:关键字参数:
从版本1.2.1开始,还可以使用关键字
fontsize
。siotufzp2#
使用
import matplotlib.pyplot as plt
方法一:调用图例时指定字体大小(重复)
使用此方法,您可以在创建时设置每个图例的字体大小(允许您拥有多个字体大小不同的图例)。但是,每次创建图例时,您都必须手动键入所有内容。
(Note:@Mathias711在他的回答中列出了可用的命名字体大小)
方法2:在rcParams中指定字体大小(方便)
使用此方法,您可以设置默认图例字体大小,并且所有图例都将自动使用该字体大小,除非您使用方法1另行指定。这意味着您可以在代码开始时设置图例字体大小,而不必担心为每个图例设置字体大小。
如果使用命名大小,例如
'medium'
,则图例文本将在rcParams
中随全局font.size
缩放。要更改font.size
,请使用plt.rc(font.size='medium')
xytpbqjk3#
这个应该可以
然后再做情节。
还有很多其他的rcParams,它们也可以在matplotlibrc文件中设置。
同样,你可以通过
matplotlib.font_manager.FontProperties
示例来改变它,但是我不知道该怎么做。--〉参见Yann的答案。eqoofvh94#
除了以磅为单位的大小之外,还有一些命名的字体大小:
用法:
bejyjqdl5#
现在在2021年,通过matplotlib 3.4.2,您可以使用以下设置图例字体
其中
fontsize
是图例中项目的字体大小,title_fontsize
是图例标题的字体大小。有关详细信息,请参阅matplotlib documentationj8yoct9x6#
调整图例大小有多个设置。我发现最有用的两个是:
legend(..., labelspacing=0.2)
将条目之间的间距减少到2磅。我安装的默认值大约是0.5。legend(..., prop={'size':8})
设置8磅字体。我安装的默认值是14磅左右。此外,图例文档还列出了许多其他填充和间距参数,包括:
borderpad
、handlelength
、handletextpad
、borderaxespad
和columnspacing
。这些都遵循与标签间距和区域相同的格式,也是字体大小的倍数。这些值也可使用matplotlibrc file设置为所有图形的默认值。
vhmi4jdf7#
在我的安装中,FontProperties只改变了文本大小,但它仍然太大,而且间距过大。我在
pyplot.rcParams
中找到了一个参数:legend.labelspacing
,我猜它被设置为字体大小的一小部分。我不知道如何将其指定给pyplot.legend函数-传递
或
返回错误。
pkln4tw68#
f87krz0w9#
可以减小图例大小设置:
labelspacing是每个标签之间的垂直间距。
handletextpad是实际图例和标签之间的距离。
字体大小是不言自明的