先来看看最终效果:-------》最终效果
注:做词云时如果使用中国地图,那必须确保中国的领土完整哦,千万不能缺少了边界线或者某些沿海省份之类的。
以下的数据下载都是在我的gitee
中的:
- 字词数据下载:Excel数据
- 字体下载:字体
- 地图下载:中国地图
- 调色盘颜色下载:玉门关的蓝色
文章图片
import pandas as pd
skdfsorttjfilter =pd.read_csv("skdfsorttjfilter.csv",encoding='utf-8-sig')
from PIL import Image#需要下载安装PIL包
import numpy as np
from wordcloud import WordCloud, ImageColorGenerator
from matplotlib import pyplot as plt
import pandas as pd
# 词频分析
sklist=[]
skforcut=[]
for i in skdfsorttjfilter['项目名称']:
sklist.append(i)
skls=','.join(sklist)
sklist
文章图片
skls
文章图片
通过解霸将句子分成字词:
import jieba # pkuseg
words=jieba.lcut(skls)
words
counts={} # items
mytextlist=[]
for word in words:
if len(word)==1: # 如果词语中只有一个字,比如‘的’,‘你’之类的就将其删除
continue
else:
counts[word]=counts.get(word,0)+1
mytextlist.append(word.replace(" ",""))
cloud_text=','.join(mytextlist)
items=list(counts.items())
itemsv2=counts.items()
文章图片
可以看到后面的数字就是词语出现的次数。
文章图片
对items进行排序:
items.sort(key=lambda x:x[1],reverse=True) # 排序
for i in range(len(items)):
word,count=items[i]
文章图片
找出词语中带有‘农’字的:
itemsv3={k:v for k,v in itemsv2 if '农' in k}
itemsv3ls=list(itemsv3)
文章图片
开始绘图!:
import os
cloud_mask=np.array(Image.open('zgv2.jpg')) # 以中国地图为整体形状
bg_Image=np.array(Image.open("YMG.jpg")) # 调色盘,但由于这张图片整体是蓝色,所以数据大体也是蓝色
st=set(["FR","平方公里","成为","10","我们","可以","这个","这里","一个","就是"]) # 过滤
#生成wordcloud对象
wc = WordCloud(background_color="white",
mask=cloud_mask,
max_words=300,
font_path="叶根友微刚体.TTF", # 字体,在我前面上传的数据当中
min_font_size=5,# 最小字体
max_font_size=200,# 最大字体
width=800,
height=1200,
stopwords=st)
wc.generate(cloud_text)
image_colors=ImageColorGenerator(bg_Image)
plt.imshow(wc.recolor(color_func=image_colors))
plt.axis("off")
plt.show()
wc.to_file("skwc01.png") # 将图片进行保存
os.system('skwc01.png') # 会自动跳出来生成的图片
【Phthon|Python词云】查看图片请点击:》skwc01.png
文章图片
使用系统自带的调色盘,可以呈现如下效果:
import os
cloud_mask=np.array(Image.open('zgv2.jpg'))
bg_Image=np.array(Image.open("YMG.jpg")) # 调色盘
st=set(["FR","平方公里","成为","10","我们","可以","这个","这里","一个","就是"]) # 过滤
#生成wordcloud对象
wc = WordCloud(background_color="white",
mask=cloud_mask,
max_words=300,
font_path="叶根友微刚体.TTF",
min_font_size=5,# 最小字体
max_font_size=200,# 最大字体
width=800,
height=1200,
stopwords=st)
wc.generate(cloud_text)
image_colors=ImageColorGenerator(bg_Image)
# plt.imshow(wc.recolor(color_func=image_colors))
plt.axis("off")
plt.show()
wc.to_file("skwc02.png")
os.system('skwc02.png')
查看图片请点击》skwc02.png
推荐阅读
- Matplotlib|Python matplotlib seaborn(学习笔记)
- 大数据分析|Python matplotlib plotly
- Phthon|Python matplotlib 堆叠图
- 解释器
- 构建python基础镜像
- Python "爬虫"出发前的装备之简单实用的 Requests 模块
- 机器学习|机器学习入门 05 —— Pandas使用
- python|python numpy pandas 书_numpy, pandas, matplotlib等常用库的学习手册
- Python编程语言|Python学生通讯录管理系统案例(文件版)