Python wordcloud在绘图周围没有任何空格

Python wordcloud在绘图周围没有任何空格,python,matplotlib,word-cloud,Python,Matplotlib,Word Cloud,我正在使用python3中的wordcloud模块,并试图保存一个图形,该图形应该只显示wordcloud的图像,而不会在云的周围留下任何空白。我尝试了stackexchange中提到的许多滴答声,但都不起作用。下面是我的默认代码,它可以去除左侧和右侧的空白,但不能去除顶部和底部的空白。如果我将ax=plt.axes([0,0,1,1])中的另外两个值也设为0,则得到一个空图像 wordcloud = WordCloud(font_path=None, width = 1500, height=

我正在使用python3中的wordcloud模块,并试图保存一个图形,该图形应该只显示wordcloud的图像,而不会在云的周围留下任何空白。我尝试了stackexchange中提到的许多滴答声,但都不起作用。下面是我的默认代码,它可以去除左侧和右侧的空白,但不能去除顶部和底部的空白。如果我将ax=plt.axes([0,0,1,1])中的另外两个值也设为0,则得到一个空图像

wordcloud = WordCloud(font_path=None, width = 1500, height=500,  
            max_words=200,  stopwords=None, background_color='whitesmoke', max_font_size=None, font_step=1, mode='RGB', 
            collocations=True, colormap=None, normalize_plurals=True).generate(filteredText)

import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes([0,0,1,1])
plt.imshow(wordcloud, interpolation="nearest")
plt.axis('off')
plt.savefig('fig.png', figsize = (1500,500), dpi=300)

有人能帮我解决这个问题吗?

wordcloud是一个图像,即像素阵列<默认情况下,code>plt.imshow使像素为正方形。这意味着,除非图像具有与图形相同的纵横比,否则顶部和底部或左侧和右侧都将存在空白

您可以释放固定纵横比设置
aspect=“auto”

其结果可能是不希望的

因此,您真正想要的是使体形大小适应图像大小。 由于图像为1500 x 500像素,您可以选择100的dpi和15 x 5英寸的图形大小

wc = wordcloud.WordCloud(font_path=None, width = 1500, height=500,  
            max_words=200,  stopwords=None, background_color='whitesmoke', max_font_size=None, font_step=1, mode='RGB', 
            collocations=True, colormap=None, normalize_plurals=True).generate(text)

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(15,5), dpi=100)
ax = plt.axes([0,0,1,1])
plt.imshow(wc, interpolation="nearest", aspect="equal")
plt.axis('off')
plt.savefig(__file__+'.png', figsize=(15,5), dpi=100)
plt.show()


总之,使用matplotlib可能不是最好的选择。因为您只想保存图像,所以可以使用

from scipy.misc import imsave
imsave(__file__+'.png', wc)

非常感谢@ImportanceOfBeingErnest这正是我想要的一切。我现在正在使用from scipy.misc import imsave imsave(_文件_+'.png',wc),它工作得很好。
from scipy.misc import imsave
imsave(__file__+'.png', wc)