使用pyecharts绘制词云图

  • Post author:
  • Post category:其他



目录


一、前言:


1.什么是数据可视化?


2.Pyecharts简介


3.词云图的含义


二、.操作步骤


1.引用库


2.数据预处理


3.输出结果


三、词云图学习总结:


一、前言:

1.什么是数据可视化?

数据可视化就是将数据转换成图或表等,以一种更直观的方式展现和呈现数据,让读者能“一眼看懂”你想表达的信息。通过“可视化”的方式,复杂的数据通过图形化的手段进行有效表达,准确高效、简洁全面地传递某种信息,甚至我们帮助发现某种规律和特征,挖掘数据背后的价值。

2.Pyecharts简介

Echarts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可

3.词云图的含义

就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨

二、.操作步骤

1.引用库


我们进行词云图的绘制需要加载三个相关库,分别是:pyecharts,jieba,snownlp。

首先安装相关库

pip install pyecharts

pip install jieba

pip install snownlp


查看安装结果:

安装完后,查看是否成功:

pip show pyecharts

pip show jieba

pip show snownlp

看到相关代码表示安装成功



2.数据预处理



首先引用相关库:

import pandas as pd
import jieba
from snownlp import SnowNLP 
import pyecharts.options as opts
from pyecharts.charts import WordCloud



导入数据


预处理 :

运用jieba和snownlp库对数据进行分词和标注

data['分词'] = data['评论'].agg(lambda x:jieba.lcut(x))
data['词性标注'] = data['评论'].agg(lambda x:list(SnowNLP(x).tags))
data

然后把词性一列中所有列表的数据对拼接到一个列表中,方便后续进行分析 。

list_tags = []
for i in data['词性标注']:
    for j in i:
        list_tags.append(j)
list_tags

之后转换成表格对象,并根据词性,统计形容词的出现频次。

data_tags = pd.DataFrame(list_tags,columns=['词语','词性'])
data_tags

result = data_tags[data_tags['词性']=='a'].groupby(by='词语')['词语'].count().sort_values(ascending=False)#[:20]
result

然后需要将形容词一列和出现频次一列转换成二维列表



注意:频次的数字需要转换成字符

data_wordcloud_tags = [(i,str(j)) for i,j in zip(result.index,result.values)]
data_wordcloud_tags

3.输出结果


代码如下:

c = (
    WordCloud()
    .add(series_name="", 
         data_pair=data_wordcloud_tags, 
         word_size_range=[30, 100]
        )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="铃芽之旅的评论", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
        ),
        tooltip_opts=opts.TooltipOpts(is_show=True),
    )
)
c.render_notebook()

运行结果:


代码说明:



.add(方法签名)(

name -> str:图例名称

attr -> list:属性名称

value -> list:属性所对应的值

shape -> list:词云图轮廓,有’circle’, ‘cardioid’, ‘diamond’, ‘triangleforward’, ‘triangle’, ‘pentagon’, ‘star’可选

word_gap -> int:单词间隔,默认为 20。

word_size_range -> list:单词字体大小范围,默认为 [12, 60]。

rotate_step -> int:旋转单词角度,默认为 45)


三、词云图学习总结:

中间分词的过程较为繁琐,但是结果能够使人一眼就可以领略数据的主要表达意思。以上还有很多属性我没有用上,大家可以去试一下。



版权声明:本文为ktkingwmz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。