WordCloud是python的一个三方库,称为词云也叫做文字云,是根据文本中的词频,对内容进行可视化的汇总,可以用来绘制用户画像。下面介绍如何利用WordCloud绘制圆形词云图
首先用ppt或visio绘制圆形,并且内部填充颜色
我们使用cv2.imread( )读取图片,得到了两种颜色的矩阵,最后传入WordCloud()函数即可绘制圆形图
mask=cv2.imread('circle.jpg')
PS:要显示中文,应该向WordCloud()传入中文字体;一般在windows字体文件夹中找。
font_path=“C:/Windows/Fonts/simfang.ttf”
完整代码:
from wordcloud import WordCloud
import cv2
# 生成词云
def create_word_cloud(path,filename):
frequencies = {}
#控制词汇的大小
f=[10,10,10,8,8,8,8,8,8,8,8,8,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5]
i=0
for line in open(path+filename+".csv",encoding="utf-8"):
arr = line.split(" ")
#按顺序读取词汇,并按f给其设置大小
frequencies[arr[0].strip('\n')] = float(arr[1])
frequencies[arr[0].strip('\n')] = f[i]
i=i+1
mask=cv2.imread('circle.jpg')
#按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍
#prefer_horizontal 设置词语横向显示
wc = WordCloud(scale=5,prefer_horizontal =1,height=2815, width = 2815,background_color="white",font_path="simkai.ttf",mask=mask)
word_cloud = wc.generate_from_frequencies(frequencies)
# 写词云图片
word_cloud.to_file("filename.jpg")