pyecharts实现词云图html和png

目标是使用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
posted @ 2020-11-16 19:30  名字很长容易被惦记  阅读(2467)  评论(0编辑  收藏  举报