这里有一个简单的问题:我试图使用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)

当前回答

有多种调整图例大小的设置。我认为最有用的两个方法是:

Labelspacing:设置标签条目之间的间距为字体大小的倍数。例如,使用10号字体,legend(…, labelspacing=0.2)将把条目之间的间距减少到2个点。我安装时的默认值大约是0.5。 道具:允许完全控制字体大小等。你可以使用图例设置8号字体(…支持={“大小”:8})。我安装时的默认值是14个点。

此外,图例文档还列出了许多其他填充和间距参数,包括:borderpad、handllength、handletextpad、borderaxespad和columnspacing。这些都遵循与labelspacing和area相同的形式,也是fontsize的倍数。

还可以使用matplotlibrc文件将这些值设置为所有图形的默认值。

其他回答

除了以点为单位的大小,还有一些命名的fontsizes:

xx-small
x-small
small
medium
large
x-large
xx-large

用法:

pyplot.legend(loc=2, fontsize = 'x-small')

在我的安装中,FontProperties只改变了文本大小,但它仍然太大,而且间隔太大。我在pyplot中找到了一个参数。rcParams:传奇。labelspacing,我猜它被设置为字体大小的一部分。我用

pyplot.rcParams.update({'legend.labelspacing':0.25})

我不确定如何将它指定给pyplot。图例函数-传递

prop={'labelspacing':0.25}

or

prop={'legend.labelspacing':0.25}

返回一个错误。

有多种调整图例大小的设置。我认为最有用的两个方法是:

Labelspacing:设置标签条目之间的间距为字体大小的倍数。例如,使用10号字体,legend(…, labelspacing=0.2)将把条目之间的间距减少到2个点。我安装时的默认值大约是0.5。 道具:允许完全控制字体大小等。你可以使用图例设置8号字体(…支持={“大小”:8})。我安装时的默认值是14个点。

此外,图例文档还列出了许多其他填充和间距参数,包括:borderpad、handllength、handletextpad、borderaxespad和columnspacing。这些都遵循与labelspacing和area相同的形式,也是fontsize的倍数。

还可以使用matplotlibrc文件将这些值设置为所有图形的默认值。

您可以通过调整prop关键字来设置图例的单个字体大小。

plot.legend(loc=2, prop={'size': 6})

这需要一个对应于matplotlib.font_manager的关键字字典。FontProperties属性。参见图例文档:

关键字参数: prop:[无| FontProperties | dict] matplotlib.font_manager。FontProperties实例。如果prop是a 字典中,将使用prop创建一个新实例。如果没有,使用 rc设置。

从版本1.2.1开始,也可以使用关键字fontsize。

plot.legend(loc = 'lower right', decimal_places = 2, fontsize = '11', title = 'Hey there', title_fontsize = '20')