下面是Python pyecharts绘制词云图的完整攻略:
简介
pyecharts(Python echarts)是一款基于Echarts语法的Python可视化库,支持多种可视化类型的展示,其中就包括了词云图(WordCloud)。
准备工作:
- 安装pyecharts库
pip install pyecharts
- 从所需爬取的文本中获取分词
pyecharts中的WordCloud要求传入一份分好词的词频数据,故我们需要将文本进行分词。可以使用Python中常用的分词库如jieba库进行分词实现,示例代码:
```python
import jieba
text = "Python是一门非常流行的编程语言,它简洁易学,使用广泛。"
# 通过jieba库进行中文分词,返回分词结果,类型为列表
seg_list = jieba.lcut(text, cut_all=False)
print(seg_list)
# 输出结果:['Python', '是', '一门', '非常', '流行', '的', '编程语言', ',', '它', '简洁', '易学', ',', '使用', '广泛', '。']
```
代码实现:
以下代码实现了根据传入的词频数据生成词云图的功能,在调用WordCloud()时,需要传入一个字典类型的数据,其中以词语为键,以词频为值(如:{'Python': 10, '编程': 5}),表示该词语在文本中出现的频率:
from pyecharts import options as opts
from pyecharts.charts import WordCloud
# 传入的词频数据,类型为字典
word_freq = {
'Python': 10,
'编程': 5,
'语言': 7,
'数据分析': 3,
'机器学习': 4,
'可视化': 2
}
# 生成词云图,并设置词云图的样式
wordcloud = (
WordCloud(init_opts=opts.InitOpts(width='800px', height='400px'))
.add(series_name='', data_pair=word_freq.items(), word_gap=10, rotate_step=90, shape='roundRect')
.set_global_opts(
title_opts=opts.TitleOpts(title='词云图'),
tooltip_opts=opts.TooltipOpts(is_show=True),
visualmap_opts=opts.VisualMapOpts(max_=10),
)
.render(path='wordcloud.html')
)
示例说明:
下面演示两个实际应用的案例:
- 网络爬虫爬取词频数据
使用Python官方库的urllib进行网络爬虫,获取网络信息,并使用jieba库进行分词,代码如下:
```python
import urllib.request
import jieba
url = "http://news.sina.com.cn/"
response = urllib.request.urlopen(url)
html = response.read()
# 利用正则表达式提取文本内容
import re
pattern = re.compile(r'<[^>]+>', re.S)
content = pattern.sub('', html.decode())
# 使用jieba库进行分词
seg_list = jieba.lcut(content, cut_all=True)
word_freq = {}
for word in seg_list:
if len(word) > 1: # 去掉单个的字
word_freq[word] = word_freq.get(word, 0) + 1
```
将所获得的分词结果作为数据项传入到WordCloud中,即可生成网络新闻页面的词云图。
- 从CSV文件中读取词频数据
利用Python内置的csv库读取CSV文件中的数据,并将其存储为字典,代码如下:
```python
import csv
with open('word_freq.csv', 'r', encoding='utf-8') as f:
csv_reader = csv.reader(f)
word_freq = {}
for row in csv_reader:
word_freq[row[0]] = int(row[1])
```
将所获得的分词结果作为数据项传入到WordCloud中,即可生成CSV中的词云图。
结论
pyecharts库在各类数据可视化中都有着十分出色的表现,特别是在设计词云图方面更是如此,只需要几行代码即可制作出复杂、美观的词云图,并且支持多种图形效果的设置和自定义。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python pyecharts绘制词云图代码 - Python技术站