不同单位的图尺寸#

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()
figure size units

厘米图尺寸#

将基于厘米的数字乘以从厘米到英寸的转换因子,即可得到正确的数值。将转换因子命名为 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()
figure size units

像素图尺寸#

类似地,也可以使用从像素到英寸的转换。

请注意,如果您使用具有不同显式 dpi 值的 savefig,可能会破坏此设置。

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()
figure size units

快速交互式工作通常会渲染到屏幕上,这使得像素成为一个好的尺寸单位。但是,对于快速迭代来说,定义转换因子可能会感觉有点繁琐。

由于默认的 rcParams['figure.dpi'] = 100,人们可以在心中将所需的像素值除以 100 [1]

plt.subplots(figsize=(6, 2))
plt.text(0.5, 0.5, '600px x 200px', **text_kwargs)
plt.show()
figure size units

参考

本示例展示了以下函数、方法、类和模块的使用

标签:组件:图 样式:尺寸 级别:初学者

脚本总运行时间: (0 分 1.448 秒)

由 Sphinx-Gallery 生成的画廊