我正在从字典创建wordcloud,对于wordcloud,我使用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()
应该绘制对象,但事实并非如此!
答案 0 :(得分:4)
您必须将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()