目标是使用python程序读取词、词频生成一个词云图,结果输出可以选择html格式,也可以选择png
pyecharts简介
官方的介绍也很简单,简单来说就是说是应大数据而生的可视化库
使用
使用上可以先下载示例代码,看上去多其实每个目录都是一个图形,使用上感觉和JS插件也差不多,挺简单的。
要从这么多图形里找到自己需要的示例也是要花点功夫的,^^
词云示例
数据格式:
pyecharts需要的数据格式为二维数组:
[[‘的‘ ‘232‘],[‘情感‘ ‘119‘],[‘和‘ ‘42‘]]
def create_wcloud(self):
(
WordCloud()
.add(series_name="热词云图",
# 添加数据
data_pair=self.data,
# 字间隙
word_gap=5,
# 调整字大小范围
word_size_range=[15, 80],
shape="cursive"
# 选择背景图,也可以不加该参数,使用默认背景
# mask_image=‘timg.jpg‘
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="热词云图", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
),
tooltip_opts=opts.TooltipOpts(is_show=True),
)
# 输出为html格式
.render("testbasic.html")
)
生成图片
pyecharts生成图片需要安装 snapshot-selenium 或者 snapshot-phantomjs。而使用snapshot-selenium需要安装浏览器的插件,否则会报错。
所以生成图片的方案我们使用wordcloud。效果也不错
数据格式:
wordcloud需要的词频数据格式是字典,如下:
mydata {‘的‘: 232, ‘情感‘: 119, ‘和‘: 42, ‘分析‘: 41, ‘方法‘: 36}
wc = WordCloud(font_path=‘C:\\windows\\Fonts\\simhei.ttf‘, background_color=‘White‘, max_words=50)
wc.generate_from_frequencies(self.data)
plt.imshow(wc)
plt.axis("off") # 不显示坐标轴
plt.show()
wc.to_file(‘Wordcloud.png‘) # 保存的图片命名为Wordcloud.pn