【问题标题】:Remove white spaces when drawing a figure with matplotlib [duplicate]使用matplotlib绘制图形时删除空格[重复]
【发布时间】:2020-07-09 17:39:12
【问题描述】:

这让我发疯了。

在python中使用matplotlib, 我正在绘制一个简单的图(二十个不同颜色的像素)如下:

fig1, ax = plt.subplots()
color_rgb_list = np.random.rand(n_colors, 3)
ax.imshow(color_rgb_list[None, :], aspect='equal')
for label in train_y:
    ax.text(label - 1.5, 1, str(label))
plt.tight_layout()
plt.show()
# fig1.savefig("test.png", bbox_inches='tight')

但是,我得到的结果周围有很多空白。我发现我可以在实际将图形保存到文件时使用bbox_inches='tight',但这并没有真正帮助我,因为我想在绘制实际图像时删除空格。 (我将它用于一个应用程序,我想在一个窗口中使用 tkinter.pack() 显示几个不同的图)

如何在绘制/显示我的绘图时删除空格? 我基本上想实现与bbox_inches='tight' 相同的功能,仅在使用plt.show() 或使用tkinter 在画布上绘图时。

提前致谢。

【问题讨论】:

    标签: python matplotlib tkinter canvas plot


    【解决方案1】:

    由于您正在制作这样一个不规则大小的绘图,您可以指定一个 figsize **kwarg 来相应地拉伸窗口。

    
    fig1, ax = plt.subplots(figsize=(10, 2)) # figsize = (width, height)
    color_rgb_list = np.random.rand(n_colors, 3)
    ax.imshow(color_rgb_list[None, :], aspect='equal')
    for label in train_y:
        ax.text(label - 1.5, 1, str(label))
    plt.tight_layout()
    plt.show()
    
    

    看看是否有帮助

    【讨论】:

    • 我已经玩过了,不幸的是没有成功......但谢谢。还有其他想法吗?
    • 我实际上得到了这个工作,不知道为什么它以前不起作用,非常感谢,我觉得有点像白痴。再次感谢!
    猜你喜欢
    • 2023-02-09
    • 2015-04-24
    • 2020-09-17
    • 2012-08-03
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多