matplotlib绘制figsave问题

时间:2015-05-07 13:43:26

标签: python matplotlib save scaling figure

昨天我发现了一些我想要更详细了解的内容: 以下代码

import matplotlib.pyplot as plt
import numpy as np

if __name__ == '__main__':

    plt.ion()
    fig = plt.figure()
    image_comb = np.random.random((300,50,4))
    plt.imshow(image_comb)

    plt.plot([0,50],[0,300], lw=20, color = 'red', alpha=0.3)
    plt.xlim(0,50)
    plt.ylim(0,300)
    plt.axis('off')

    [ax] = fig.get_axes()
    extent = ax.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
    plt.savefig('test_fig.png', bbox_inches = extent)
    plt.close(fig)
在pycharm中逐行启动ipython生成这个png文件:

launched line by line

虽然通过魔术命令%run启动了相同的代码...再次在pycharm中的ipython返回此png文件:

launched via magic %run command

我已经明白了,我得到的是我的"图片"缩放到数字的标准尺寸而没有figsize。我进一步知道,有可能通过用plt.figure(figsize =(0.5,3),dpi = 100)替换plt.figure()来解决问题,但我仍然想知道为什么两种启动方式都有所不同第一名。那么在启动期间使用导致转换的魔术%run命令会发生什么呢?

0 个答案:

没有答案