文章中的例子主要借鉴wordColud的examples,在文章对examples中的例子做了一些改动。
成都创新互联服务项目包括伊春网站建设、伊春网站制作、伊春网页制作以及伊春网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,伊春网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到伊春省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!一、wordColud设计中文词云乱码
使用wordColud设计词云的时候可能会产生乱码问题,因为wordColud默认的字体不支持中文,所以我们只需要替换wordColud的默认字体即可正常显示中文。
1、中文词云乱码
我们使用simhei(黑体)来替换wordColud的默认字体。
2、替换默认字体
a、在字体文件*.tff字体文件(simhei.tff)拷贝到wordColud安装的文件夹中,文件夹路径:anaconda(python)-->lib-->site-packages-->wordcolud,如下图:
其中矩形框出来的是wordColud默认的字体,椭圆形框的是我们下载的字体。
b、修改wordcolud.py文件中的字体设置,打开改路径下的wordcolud.py文件,找到下图的所示的框出来的这一行(29行)
将系统的DroidSansMono.tff修改为simhei.tff即可。
二、wordColud示例
1、设计一个简单的圆形词云
import numpy as np import matplotlib.pyplot as plt from wordcloud import WordCloud,STOPWORDS from PIL import Image from os import path import matplotlib.pyplot as plt #用来正常显示中文 plt.rcParams["font.sans-serif"]=["SimHei"] #用来正常显示负号 plt.rcParams["axes.unicode_minus"]=False import os import random,jieba ''' 绘制单个词一个圆形的词云 ''' def single_wordColud(): text = "第一 第二 第三 第四" #产生一个以(150,150)为圆心,半径为130的圆形mask x,y = np.ogrid[:300,:300] mask = (x-150) ** 2 + (y-150) ** 2 > 130 ** 2 mask = 255 * mask.astype(int) wc = WordCloud(background_color="white",repeat=True,mask=mask) wc.generate(text) #将x轴和y轴坐标隐藏 plt.axis("off") plt.imshow(wc,interpolation="bilinear") plt.show()