使用pyecharts绘制词云图

目录

一、前言:

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

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

使用pyecharts绘制词云图_第1张图片

2.数据预处理

首先引用相关库:

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

导入数据

使用pyecharts绘制词云图_第2张图片

预处理 :

运用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()

运行结果:

使用pyecharts绘制词云图_第3张图片

代码说明:
.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)

三、词云图学习总结:

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

你可能感兴趣的:(信息可视化,数据分析,数据挖掘)