DataJam

3.简单词云图

图标:https://fa5.dashgame.com/#/%E5%9B%BE%E6%A0%87

学习案例:https://zhuanlan.zhihu.com/p/138356932

pyecharts示例图:https://gallery.pyecharts.org/#/WordCloud/wordcloud_custom_mask_image

 

方法一、wordcloud

 1.安装wordcloud包

pip install wordcloud

官网:http://amueller.github.io/word_cloud/auto_examples/emoji.html

参考:https://blog.csdn.net/kun1280437633/article/details/89474284

 1 import matplotlib.pyplot as plt #数据可视化
 2 import jieba #词语切割
 3 import wordcloud #分词
 4 from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS #词云,颜色生成器,停止词
 5 import numpy as np #科学计算
 6 from PIL import Image #处理图片
 7 
 8 with open('贵州民族分布.txt','r',encoding='utf-8') as f:  #打开新的文本转码为gbk
 9     textfile= f.read()  #读取文本内容
10 wordlist = jieba.lcut(textfile)#切割词语
11 space_list = ' '.join(wordlist) #空格链接词语
12 
13 backgroud = np.array(Image.open('贵州地图.jpg')) 
14 
15 wc = WordCloud(
16         width=1400, 
17         height=2200,
18         background_color='white',
19         mode='RGB', 
20         mask=backgroud, #添加蒙版,生成指定形状的词云,并且词云图的颜色可从蒙版里提取
21         max_words=500,
22         stopwords=STOPWORDS.add('家人族'),#内置的屏蔽词,并添加自己设置的词语
23         #font_path='C:\Windows\Fonts\STZHONGS.ttf',#设置字体
24         max_font_size=150,#字体最大标准
25         relative_scaling=0.6, #设置字体大小与词频的关联程度为0.4
26         random_state=50, 
27         scale=2 
28         ) 
29 wc.generate(space_list)
30 image_color = ImageColorGenerator(backgroud)#设置生成词云的颜色,如去掉这两行则字体为默认颜色
31 wc.recolor(color_func=image_color)
32 
33 plt.figure()
34 plt.imshow(wc) #显示词云
35 plt.axis('off') #关闭x,y轴
36 plt.show()#显示
37 wc.to_file('test1_ciyun.jpg') #保存词云图

 

方法2:pyecharts

 1 from pyecharts import options as opts
 2 from pyecharts.charts import WordCloud
 3 from pyecharts.globals import SymbolType
 4 
 5 
 6 words = [('京族', 2),
 7  ('家人族', 3),
 8  ('满族', 7),
 9  ('畲族', 7),
10  ('水族', 8),
11  ('瑶族', 9),
12  ('回族', 10),
13  ('黎族', 14),
14  ('仡佬族', 27),
15  ('壮族', 37),
16  ('白族', 47),
17  ('侗族', 52),
18  ('彝族', 58),
19  ('穿青人', 64),
20  ('土家族', 82),
21  ('布依族', 3763),
22  ('苗族', 12059),
23  ('汉族', 13376)]#列表+元组类型
24 c = (
25     WordCloud()
26     .add("", words, word_size_range=[20, 100], shape=SymbolType.DIAMOND)
27     .set_global_opts(title_opts=opts.TitleOpts(title="民族分类"))
28     
29 )
30 
31 c.render_notebook()

 

posted on 2021-05-28 09:34  DataJam  阅读(156)  评论(0)    收藏  举报

导航