matplotlib - 更改figsize但保持fontsize不变

时间:2016-09-08 16:04:31

标签: python matplotlib figure

我想显示几个不同尺寸的图形,确保在打印图形时文本总是相同。我怎样才能做到这一点?

举个例子。假设我有两个数字:

import matplotlib.pylab as plt
import matplotlib as mpl

mpl.rc('font', size=10)

fig1 = plt.figure(figsize = (3,1))
plt.title('This is fig1')
plt.plot(range(0,10),range(0,10))
plt.show()


mpl.rc('font', size=?)

fig2 = plt.figure(figsize = (20,10))
plt.title('This is fig2')
plt.plot(range(0,10),range(0,10))
plt.show()

如何以这样的方式设置fontsize:打印时,fig1中的标题和轴刻度标签将与图2中的标题和轴标记相同?

1 个答案:

答案 0 :(得分:1)

在这种情况下,字体大小将相同(即也是10个点)。

然而,在Jupyter笔记本中,如果数字过宽,数字可能会以不同的尺寸显示,请参阅下文:

Jupyter Notebook example

请注意,以磅为单位的字体大小具有线性比例,因此如果您希望字母的大小恰好是两倍大,则需要输入两倍大小的点(例如20pt)。这样,如果您希望以原始大小的50%(长度和宽度,而不是区域)打印第二个数字,则字体大小相同。

但是,如果此脚本的唯一目的是使图形再打印,则最好根据需要设置尺寸(在纸上或屏幕上),然后使字体大小相等。然后,您可以将它们以确切的大小或比例粘贴到文档中,字体的大小确实相同。

正如tcaswell所述,bbox_inches='tight'有效地更改了已保存数字的大小,因此其大小与您设置为figsize的大小不同。由于这可能会从某些图形中裁剪出比其他图形更多的空白,因此对于给定的宽高比,对象和字体的相对大小可能最终会不同。