matplotlib - 更改图形大小但保持字体大小不变
matplotlib - change figsize but keep fontsize constant
我想显示几个不同大小的图形,确保打印图形时文本始终具有相同的大小。我怎样才能做到这一点?
举个例子。假设我有两个数字:
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()
如何设置字体大小,使图 1 中的标题和轴刻度标签在打印时与图 2 中的大小相同?
在这种情况下,字体大小将相同(即也是 10 磅)。
但是,在 Jupyter Notebook 中,如果图形太宽,它们可能会以不同的大小显示,请参见下文:
请注意,以磅为单位的字体大小具有线性比例,因此如果您希望字母的大小恰好是原来的两倍大,则需要输入恰好两倍的磅数(例如 20pt)。这样,如果您希望以原始尺寸(长度和宽度,而不是面积)的 50% 打印第二个图形,则字体大小将相同。
但是如果这个脚本的唯一目的是制作图形然后打印,你最好根据需要设置大小(在纸上或屏幕上),然后使字体大小相等。然后,您可以将它们以准确的大小或比例粘贴到文档中,并且字体大小确实相同。
如tcaswell所述,bbox_inches='tight'
有效地改变了保存图形的大小,因此大小与您设置的figsize
不同。由于这可能会从某些图形中裁剪出比其他图形更多的空白,因此对于给定的宽高比,对象和字体的相对大小最终可能会有所不同。
我想显示几个不同大小的图形,确保打印图形时文本始终具有相同的大小。我怎样才能做到这一点?
举个例子。假设我有两个数字:
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()
如何设置字体大小,使图 1 中的标题和轴刻度标签在打印时与图 2 中的大小相同?
在这种情况下,字体大小将相同(即也是 10 磅)。
但是,在 Jupyter Notebook 中,如果图形太宽,它们可能会以不同的大小显示,请参见下文:
请注意,以磅为单位的字体大小具有线性比例,因此如果您希望字母的大小恰好是原来的两倍大,则需要输入恰好两倍的磅数(例如 20pt)。这样,如果您希望以原始尺寸(长度和宽度,而不是面积)的 50% 打印第二个图形,则字体大小将相同。
但是如果这个脚本的唯一目的是制作图形然后打印,你最好根据需要设置大小(在纸上或屏幕上),然后使字体大小相等。然后,您可以将它们以准确的大小或比例粘贴到文档中,并且字体大小确实相同。
如tcaswell所述,bbox_inches='tight'
有效地改变了保存图形的大小,因此大小与您设置的figsize
不同。由于这可能会从某些图形中裁剪出比其他图形更多的空白,因此对于给定的宽高比,对象和字体的相对大小最终可能会有所不同。