我想以确切的像素大小保存一个matplotlib图形。在下面的代码中,这个确切的大小是500x500像素。 虽然保存的图像是500x500像素,但它包括围绕我的形状和绘图区域的填充。我希望圆紧贴边框。相反,我的圆周围有白色空间。是否有可能仅保存绘图区域? 请注意,尽管下面的代码是可再现的,但我的_dpi取决于您的显示器DPI。220是我的显示器的DPI。
import matplotlib.pyplot as plt
import matplotlib.image as mpimage
import numpy as np
H = 500
W = 500
radius = H/2
my_dpi = 220
a = np.deg2rad(0)
b = np.deg2rad(360);
t = np.linspace(a,b,100)
x = radius*np.cos(t)
y = radius*np.sin(t)
x = np.append(x,[0,x[0]])
y = np.append(y,[0,y[0]])
myFig = plt.figure()
DPI = my_dpi #myFig.get_dpi()
myFig.set_size_inches(float(H)/float(DPI),float(W)/float(DPI))
plt.fill(y,x,color='none',facecolor='red')
plt.axis((-W/2,W/2,-H/2,H/2))
plt.axis('off')
#plt.show()
plt.savefig('my_fig.png',dpi=DPI)
print 'Figure Size: ', myFig.get_size_inches()
Im = mpimage.imread('my_fig.png')
print 'Im Size: ', Im.shape