备注
前往末尾 下载完整示例代码。
不同单位中的图形尺寸#
Matplotlib 中的原生图形尺寸单位是英寸,源自印刷行业的标准。然而,用户可能需要以厘米或像素等其他单位来指定图形尺寸。本示例展示了如何高效地实现这一点。
import matplotlib.pyplot as plt
text_kwargs = dict(ha='center', va='center', fontsize=28, color='C1')
图表尺寸(英寸,默认)#
plt.subplots(figsize=(6, 2))
plt.text(0.5, 0.5, '6 inches x 2 inches', **text_kwargs)
plt.show()

图表尺寸(厘米)#
将基于厘米的数字乘以从厘米到英寸的转换因子,可以得到正确的数字。将转换因子命名为 cm 使得转换看起来几乎像是在数字后面附加一个单位,这非常易读。
cm = 1/2.54 # centimeters in inches
plt.subplots(figsize=(15*cm, 5*cm))
plt.text(0.5, 0.5, '15cm x 5cm', **text_kwargs)
plt.show()

图表尺寸(像素)#
同样地,可以使用从像素的转换。
请注意,如果你使用 savefig 并设置了一个不同的显式 dpi 值,可能会导致问题。
px = 1/plt.rcParams['figure.dpi'] # pixel in inches
plt.subplots(figsize=(600*px, 200*px))
plt.text(0.5, 0.5, '600px x 200px', **text_kwargs)
plt.show()

快速交互式工作通常会渲染到屏幕上,使得像素成为一个合适的单位大小。但对于快速迭代来说,定义转换因子可能会感觉有些繁琐。
由于默认的 rcParams['figure.dpi'] = 100 ,人们可以心算将所需的像素值除以 100 [1]:
plt.subplots(figsize=(6, 2))
plt.text(0.5, 0.5, '600px x 200px', **text_kwargs)
plt.show()
参考文献
以下示例展示了以下函数、方法、类和模块的使用: