Python生成词云没有输出

3
我正在使用由Github用户amueller创建的wordcloud库,从字典中创建一个词云。
以下是我的代码:
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt

    MyData= {u'arbeid': 0.0006715695865686539,
      u'banen': 0.00066821988636323406,
      u'begrotingsherstel': 0.00071106447864468028,
      u'belastingplan': 0.00064287666559415511,
      u'bestuursakkoord': 0.00085938678272561703,
      u'duurzame': 0.00086622249359887991,
      u'energie': 0.00071735256545447078,
      u'energievoorziening': 0.00091959448177479836,
      u'europa': 0.00077342364155819174,
      u'inkomens': 0.00086651160197001511,
      u'kabinet': 0.0012281373248267241,
      u'pakket': 0.00078934462283374919,
      u'premier': 0.00098440752486735842,
      u'slob': 0.0010329596055417033,
      u'verdaas': 0.00072183114176594104}

    type(test)

    WordCloud().generate_from_frequencies(MyData)
    plt.show()

我遇到的问题是,如果我不使用plt.show(),那么我只会得到以下输出:
<wordcloud.wordcloud.WordCloud at 0x350700f0>

如果我没记错的话,plt.show()应该会画出对象,但现在却没有!
1个回答

5

您需要将 WordCloud().generate_from_frequencies(MyData) 的结果保存到变量中,然后使用 matplotlib.pyplot.imshow 进行绘图。

from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt

# test data
MyData= {u'arbeid': 0.0006715695865686539,
      u'banen': 0.00066821988636323406,
      u'begrotingsherstel': 0.00071106447864468028,
      u'belastingplan': 0.00064287666559415511,
      u'bestuursakkoord': 0.00085938678272561703,
      u'duurzame': 0.00086622249359887991,
      u'energie': 0.00071735256545447078,
      u'energievoorziening': 0.00091959448177479836,
      u'europa': 0.00077342364155819174,
      u'inkomens': 0.00086651160197001511,
      u'kabinet': 0.0012281373248267241,
      u'pakket': 0.00078934462283374919,
      u'premier': 0.00098440752486735842,
      u'slob': 0.0010329596055417033,
      u'verdaas': 0.00072183114176594104}
# generate wordcloud
wcloud = WordCloud().generate_from_frequencies(MyData)

# make figure to plot
plt.figure()
# plot words
plt.imshow(wcloud, interpolation="bilinear")
# remove axes
plt.axis("off")
# show the result
plt.show()

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接