繁体   English   中英

Python保存带有精确像素大小的matplotlib图

[英]Python save matplotlib figure with exact pixel size

我想保存一个精确大小的matplotlib图像。 在下面的代码中,这个确切的大小是500x500像素。 虽然保存的图像是500x500像素,但它包括我的形状和绘图区域周围的填充。 我希望圆圈紧贴边界。 相反,我的圈子周围有空白区域。 是否可以仅保存绘图区域? 请注意,虽然下面的代码是可重现的,但my_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

您可以使用subplots_adjust在绘图周围设置填充。

myFig.subplots_adjust(bottom=0.,left=0.,right=1.,top=1.)

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM