python练习1 以词云图为例的数据可视化
from wordcloud import WordCloud as wc
import matplotlib.pyplot as plt
text=open('China145.txt','r',encoding='utf-8').read()
font=r'c:\Windows\Fonts\simfang.ttf'
mywc=wc(font_path=font).generate(text)
plt.imshow(mywc)
plt.axis('off')
plt.show()
第一节课学习利用WordCloud制作可视化词云图
在安装wordcloud时出现问题,便下载了whl文件进行安装。文件包含中文,使用utf-8编码。之后利用matplotlib进行绘图,导入字体,关闭坐标轴,获得如下的词云图。
(注意:plt.imshow只是生成了图,而plt.show是展示图。)
之后进行分词练习
import jieba # 导入中文分词第三方库jieba库
with open('China145.txt','r',encoding="utf-8") as f:
renmin=f.read()
jieba.load_userdict('China145.txt')#加载分词字典
seg_list=jieba.cut(renmin,cut_all=False)
tf={}
for seg in seg_list:
if seg in tf:
tf[seg]+=1
else:
tf[seg]=1
ci=list(tf.keys())#统计词频
for seg in ci:
if tf[seg]<20 or len(seg)<2 or '-'in seg:
tf.pop(seg) #将词频较低和单字词过滤
from wordcloud import WordCloud,ImageColorGenerator
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
mask=np.array(Image.open('C:/Users/summe/Desktop/heart.png'))#套图形
font=r'c:\Windows\Fonts\simfang.ttf'
wc=WordCloud(background_color='white',mask=mask,font_path=font,width=800,height=600).generate_from_frequencies(tf)
image_colors=ImageColorGenerator(mask)#从原图提取色彩
plt.imshow(wc.recolor(color_func=image_colors))
plt.axis('off')
plt.show()
1.安装中文分词第三方库jieba库,关闭全模式,使分词更加精确。
(开启全模式 cut_all=True,“我来到北京清华大学”→“我/来到/北京/清华/清华大学/华大/大学)
2.添加字典,分词并统计词频。对词频过低(tf[seg]<20)和单字词(len(seg)<2)进行过滤,可以根据情况进行调整。词云词数一般不要超过300。
3.统计词频后绘制词云图,导入心形图形,还可从原图中提取色彩,最终获得下图。
版权声明:本文为weixin_47808721原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。