pandas.plot和pyplot.save_fig为相同的figsize创建不同大小的PNG

时间:2017-01-25 23:25:44

标签: pandas matplotlib

当我使用相同的figsize调用使用pandas.plot的相同函数时,我得到不同大小的PNG文件。宽度相同,但像素的高度会发生变化。我怀疑x轴标签的长度会改变高度。我还没有尝试直接调用matplotlib函数。

我也试过plt.rcParams['figure.figsize'] = (7,4)。问题似乎不在于如何设置figsize。我的print_fig_info总是产生欲望值。

# 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')

1 个答案:

答案 0 :(得分:1)

在致电savefig时,您明确要求matplotlib将figsize更改为仍适合via bbox_inches='tight'中所有元素的最小尺寸。 或者换句话说,bbox_inches='tight'专门用于将图形大小更改为最小边界框,因此matplotlib正在执行它所要求的内容。

解决方案:请勿使用bbox_inches='tight'