Python matplotlib绘图figsave问题

Python matplotlib绘图figsave问题,python,matplotlib,save,scaling,figure,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=

昨天我遇到了一件我想更详细地了解的事情: 下面的代码

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文件:

虽然同样的代码通过magic命令%run启动。。。pycharm中的ipython再次返回此png文件:

我已经明白了,我得到的是我的“图片”缩放到一个数字的标准尺寸,没有figsize。我还知道,用plt.figure(figsize=(0.5,3),dpi=100)之类的东西替换plt.figure()可以解决这个问题,但我仍然想知道,为什么两种启动方式一开始都不同。那么,在使用magic%run命令启动过程中,会发生什么导致转换呢