Matplotlib:使用savefig删除空白,但不使用show [duplicate]删除空白

5ktev3wc  于 2023-01-21  发布在  其他
关注(0)|答案(1)|浏览(150)
    • 此问题在此处已有答案**:

matplotlib.pyplot.imshow: removing white space/margins [duplicate](1个答案)
How to completely remove the white space around a scatter plot(2个答案)
昨天关门了。
我发现了很多类似的问题,并尝试了几个建议,但似乎都不起作用。屏幕上显示的图周围有太多不需要的空白,而使用savefig保存的图像文件正确地修剪了它。

,而以下是保存图像文件(以及我希望显示的内容):

这是我的代码:

wc = WordCloud(
    width=1920, height=1080, max_words=50, background_color="white"
).generate_from_frequencies(dict(data))

# plot
plt.figure(figsize=(10, 10))
plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
fig1 = plt.gcf()  # save the current figure
plt.show()  # because this generates a new picture
fig1.savefig(
    "data/topmentions.png", bbox_inches="tight"
)  # bbox_inches="tight" removes white space around the figure

所以问题是:当在scree上显示单词云时,我如何得到单词云周围空白的ris,就像在保存的图形中发生的事情一样?

pkmbmrz7

pkmbmrz71#

您可以使用subplots_adjust删除云周围的边距:

wc = WordCloud(
    width=1920, height=1080, max_words=50, background_color="white"
).generate_from_frequencies(dict(data))

# plot
plt.figure(figsize=(10, 10))
plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
fig1 = plt.gcf()  # save the current figure
#plt.tight_layout(pad=0)
plt.subplots_adjust(left=0,
                    bottom=0,
                    right=1,
                    top=1)
plt.show()  # because this generates a new picture
fig1.savefig(
    "data/topmentions.png", bbox_inches="tight"
)

或者使用plt.tight_layout(pad=0)

相关问题