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 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>