pandas.plot和pyplot.save_fig为同一figsize创建不同大小的PNG
当我调用使用相同figsize的pandas.plot的同一个函数时,会得到不同大小的PNG文件。宽度相同,但以像素为单位的高度发生变化。我怀疑x轴标签的长度会改变高度。我还没有尝试直接调用matplotlib函数 我还尝试了plt.rcParams['figure.figsize']=7,4。问题似乎不在于figsize的设置方式。我的打印图信息总是产生期望值pandas.plot和pyplot.save_fig为同一figsize创建不同大小的PNG,pandas,matplotlib,Pandas,Matplotlib,当我调用使用相同figsize的pandas.plot的同一个函数时,会得到不同大小的PNG文件。宽度相同,但以像素为单位的高度发生变化。我怀疑x轴标签的长度会改变高度。我还没有尝试直接调用matplotlib函数 我还尝试了plt.rcParams['figure.figsize']=7,4。问题似乎不在于figsize的设置方式。我的打印图信息总是产生期望值 # Primitive way that confirmed that the figure size does not change
# Primitive way that confirmed that the figure size does not change
def print_fig_info(label=""):
print(label,str(plt.gcf().get_size_inches()))
def my_plot(df):
global c
print_fig_info("Before plot")
df.plot(kind='bar', figsize=(7,4))
print_fig_info("After plot")
# want to make output files unique
c += 1
plt.savefig("output"+str(c), bbox_inches='tight', dpi='figure')
在调用savefig时,您明确要求matplotlib将figsize更改为最小尺寸,以便通过bbox_inches='tight'仍然适合所有元素。
或者换句话说,bbox_inches='tight'是专门为将图形大小更改为最小边界框而设计的,因此matplotlib正在执行要求的操作
解决方案:不要使用bbox_inches='tight'。因此,如果我理解正确,要获得紧密配合,savefig,bbox='tight'将根据需要拧紧或扩展体形区域。要获得超出初始体形尺寸的标签,我可以尝试使用类似于:从MatPlutlb.转换导入BBox PLT。SaveFig.Test.PNG,BBOXYROUNK= BBOS.FROX-ExtEXTS0,-2,8,7需要考虑是否值得付出努力。如果您的目标是产生相同大小的图形,并且需要确保内容符合给定的图形大小,您可以在保存之前使用plt.tight_布局。非常好的建议。我没有意识到这一点。谢谢你的帮助,不仅仅是眼前的问题。