不同单位的图形大小#

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

参考

以下函数,方法,类和模块的用法在本例中显示:

  • matplotlib.pyplot.figure

  • matplotlib.pyplot.subplots

  • matplotlib.pyplot.subplot_mosaic

标签:组件:figure 样式:尺寸 等级:初级

Gallery generated by Sphinx-Gallery