matplotlib打印figsave issu

2024-04-25 09:12:47 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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)

通过ipython在pycharm中逐行启动生成以下png文件:

launched line by line

当同样的代码通过magic命令%运行时。。。同样,pycharm中的ipython返回以下png文件:

launched via magic %run command

我已经明白,我得到的是我的“图片”缩放到一个没有figsize的图形的标准尺寸。我还知道,有可能通过替换来解决这个问题plt.图()像是plt.图(figsize=(0.5,3),dpi=100),但我仍然想知道为什么两种发射方式一开始就不同。那么,在使用magic%run命令启动时,会发生什么变化呢?在


Tags: 代码imageimportgetpngasipythonnp