目录
前言
最近在项目中学习matplotlib,发现一些有意思的东西,放在这里备忘,同时也跟大家一起分享交流。
一、如何确定figure对象的大小
1.添加引用
import numpy as numpy
import matplotlib.pyplot as plt
2.首先创建一个figure对象,并初始化其大小,如下面的代码所示:
w = 8
h = 6
dpi_setting = 200
fig =plt.figure('new figure',figsize=(w,h),dpi=dpi_setting)
2.为了查看其尺寸,我们可以用以下代码实现:
print('输入的dpi值为:',dpi_setting)
print('输入的w和h分别是:',w,h)
width, height = fig.canvas.get_width_height()
print('figure对象的宽度和高度分别是:',width,height)
这里的结果是:
注意到这里,width和height分别等于w乘以dpi、h乘以dpi。
二、如何确定figure中axes的位置
1.首先创建一个axes对象并添加到已有的figure对象中
x_min = 0.1
y_min = 0.1
x_span = 0.5
y_span = 0.6
axes_area = (x_min,y_min,x_span,y_span)
fig.add_axes(axes_area)
这里axes_area中各元素的取值都在[0,1]范围内,代表含义为对应点占整个figure对象画布的比例。例如,按照上面的设置,该axes左下角点在横向和纵向距离figure对象画布左下角点分别为160(1600*0.1)像素点以及120(1200*0.1)像素点。特别要强调的是,这里是以左下角点为参照而不是如opencv中那样以左上角作参照。
2.读取当前添加的axes的位置
axes_region = ax.get_position()
print('axes_region:',axes_region)
注意到结果的差异:
注意到,这里的x0、y0分别与 x_min、y_min一致,但是,需要注意:x1等于x_min+x_span,y1等于y_min+y_span。
完整程序如下:
import numpy as numpy
import matplotlib.pyplot as plt
w = 8
h = 6
dpi_setting = 200
fig =plt.figure('new figure',figsize=(w,h),dpi=dpi_setting)
print('输入的dpi值为:',dpi_setting)
print('输入的w和h分别是:',w,h)
width, height = fig.canvas.get_width_height()
print('figure对象的宽度和高度分别是:',width,height)
x_min = 0.1
y_min = 0.1
x_span = 0.5
y_span = 0.6
axes_area = (x_min,y_min,x_span,y_span)
ax = fig.add_axes(axes_area)
axes_region = ax.get_position()
print('输入的axes位置:',axes_area)
print('figure对象中axes对象的位置是:',axes_region)
总结
细节决定成败。