国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python數據可視化:WordCloud入門

大數據 數據可視化
WordCloud是一種很好的展現數據的方式,網上也有不少小工具和在線網頁。但是有些不支持中文,有些安裝復雜,所以決定用Python實現。主要參考官網,通過官網的例子,講一下WordCloud的制作。

WordCloud是一種很好的展現數據的方式,網上也有不少小工具和在線網頁。

但是有些不支持中文,有些安裝復雜,所以決定用Python實現。

主要參考官網,通過官網的例子,講一下WordCloud的制作。

主要流程

  • 獲取內容的路徑
  • 如果是一段文字,系統自動算頻次
  • 你也可以直接導入統計好的頻次
  • 設置字體
  • 一般字體路徑在C:\Windows\Fonts,你可以選自己喜歡的中文或者英文字體
  • 切割中文字符
  • 英文字符就不用切割了
  • 輸入WordCloud的參數
  • 背景色
  • 字號
  • 生成的形狀
  • 顏色
  • 字體大小
  • 字體旋轉等等
  • 生成WordCloud
  • 用matplotlib顯示圖片

效果圖

 

Python數據可視化:WordCloud入門(大伙都在用)

 

Python數據可視化:WordCloud入門(大伙都在用)

 

Python數據可視化:WordCloud入門(大伙都在用)

 

Python數據可視化:WordCloud入門(大伙都在用)

 

Python數據可視化:WordCloud入門(大伙都在用)

 

Python數據可視化:WordCloud入門(大伙都在用)

安裝庫

老規矩,首先,你要安裝庫。

最基本的兩個:

 

  1. pip install wordcloud #這是WordCloud的庫 
  2.  
  3. pip install matplotlib #顯示圖像 

一個單詞構造WordCloud

在這個代碼中,我們需要安裝一個numpy庫

(大部分小伙伴應該都裝過,就不用再裝了)

  1. pip install numpy 

這里用這個庫,主要是想用數學坐標生成一個簡單的背景圖案,比如圓形、方形

 

Python數據可視化:WordCloud入門(大伙都在用)

基本步驟

  • 輸入單詞
  • 用numpy 生成一個形狀,下面生成了一個圓形mask
  • 輸入WordCloud的參數(包括背景色、是否重復、圖案形狀)
  • 用matplotlib顯示圖片
  1. import numpy as np 
  2. import matplotlib.pyplot as plt 
  3. from wordcloud import WordCloud 
  4. text = "square" #輸入你要的單詞 
  5. x, y = np.ogrid[:300, :300] #快速產生一對數組 
  6. # 產生一個以(150,150)為圓心,半徑為130的圓形mask 
  7. mask = (x - 150) ** 2 + (y - 150) ** 2 > 130 ** 2 #此時mask是bool型 
  8. mask = 255 * mask.astype(int) #變量類型轉換為int型 
  9. wc = WordCloud( 
  10.  background_color="white", #背景顏色為“白色” 
  11.  repeat=True, #單詞可以重復 
  12.  mask=mask #指定形狀,就是剛剛生成的圓形 
  13.  ) 
  14. wc.generate(text) #從文本生成wordcloud 
  15. plt.axis("off") #把作圖的坐標軸關掉 
  16. plt.imshow(wc, interpolation="bilinear"
  17. plt.show() 

生成WordCloud

最簡單的生成方式,文本內容都是英文,直接用系統默認的形狀(一個長方形)

我這邊是導入了一個商務英語的txt,所以可以看到,出現次數最多的單詞是company,然后是business、new、work等單詞,我還看到了money,哈哈~

 

Python數據可視化:WordCloud入門(大伙都在用)

基本步驟

  • 獲取內容txt的路徑
  • 輸入WordCloud的參數(包括背景色、字號等)
  • 生成WordCloud
  • 用matplotlib顯示圖片

*WordCloud有很多參數,如果你不寫,都是默認的。比如背景色默認黑色。

  1. import os 
  2. from os import path 
  3. from wordcloud import WordCloud 
  4. from matplotlib import pyplot as plt 
  5. # 獲取當前文件路徑 
  6. d = path.dirname(__file__) if "__file__" in locals() else os.getcwd() 
  7. # 獲取文本txt的路徑(txt和代碼在一個路徑下面) 
  8. text = open(path.join(d,'BusinessEnglish.txt')).read() 
  9. # 生成詞云 
  10. wc = WordCloud( 
  11.  scale=2, 
  12.  max_font_size=100, #最大字號 
  13.  background_color='white' #設置背景顏色 
  14.  ) 
  15. wc.generate(text) # 從文本生成wordcloud 
  16. # wc.generate_from_text(text) #用這種表達方式也可以  
  17. # 顯示圖像 
  18. plt.imshow(wc,interpolation='bilinear'
  19. plt.axis('off'
  20. plt.tight_layout() 
  21. wc.to_file('標簽云效果圖.png') # 儲存圖像 
  22. #plt.savefig('標簽云效果圖.png',dpi=200) #用這個可以指定像素 
  23. plt.show() 

設置WordCloud形狀

都是長方形、圓形、正方形這種,好像不夠炫酷

為了炫酷,我們可以給它設置不同的形狀,比如云朵、愛心等等

下面我們用Alice的小裙子做個實例

這個圖片長這樣

 

Python數據可視化:WordCloud入門(大伙都在用)

我們生成的圖片是這樣的,可以看到,完整保留了上圖的輪廓

 

Python數據可視化:WordCloud入門(大伙都在用)

基本步驟

和之前基本都是一致的,就是多了一步,導入指定圖片,獲取圖片輪廓

  • 獲取內容txt的路徑
  • 輸入WordCloud的參數(包括背景色、字號等),指定了生成的形狀
  • 生成WordCloud
  • 用matplotlib顯示圖片

*代碼中增加了一個stopwords,有些你覺得沒意義的單詞,不想顯示在圖片上,你就可以放在這里

  1. from os import path 
  2. from PIL import Image 
  3. import numpy as np 
  4. import matplotlib.pyplot as plt 
  5. import os 
  6. from wordcloud import WordCloud, STOPWORDS 
  7. # 獲取當前文件路徑 
  8. d = path.dirname(__file__) if "__file__" in locals() else os.getcwd() 
  9. # 獲取文本txt的路徑(txt和代碼在一個路徑下面) 
  10. text = open(path.join(d, 'BusinessEnglish.txt')).read() 
  11. # 讀取mask的圖像(圖像和代碼在一個路徑下面) 
  12. alice_mask = np.array(Image.open(path.join(d, "alice_mask.png"))) 
  13. # 設置不顯示單詞,比如said、inonis這種單詞 
  14. stopwords = set(STOPWORDS) 
  15. stopwords.add("said"
  16. # 設置詞云參數 
  17. wc = WordCloud(background_color="white",  
  18.  max_words=2000,  
  19.  mask=alice_mask, 
  20.  stopwords=stopwords,  
  21.  contour_width=3, #設置輪廓寬度 
  22.  contour_color='steelblue') #設置輪廓顏色 
  23. # 從文本生成wordcloud 
  24. wc.generate(text) 
  25. # 保存到文件 
  26. wc.to_file(path.join(d, "alice.png")) 
  27. # 顯示圖片 
  28. plt.imshow(wc, interpolation='bilinear'
  29. plt.axis("off"
  30. plt.figure() #新建一個圖片,把mask也顯示出來 
  31. plt.imshow(alice_mask, cmap=plt.cm.gray, interpolation='bilinear'
  32. plt.axis("off"
  33. plt.show() 

根據圖片調整顏色

原圖是這樣的

 

Python數據可視化:WordCloud入門(大伙都在用)

如果我們直接根據上一步,獲取圖片輪廓,可以得到下圖

 

Python數據可視化:WordCloud入門(大伙都在用)

我們進一步,根據原圖,調整顏色

 

Python數據可視化:WordCloud入門(大伙都在用)

其實就是獲取了圖片顏色,也是一行代碼

  1. image_colors = ImageColorGenerator(alice_coloring) 

完整代碼

 

  1. from os import path  
  2. from PIL import Image  
  3. import numpy as np  
  4. import matplotlib.pyplot as plt  
  5. import os  
  6. from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator 
  7.  
  8. # 獲取當前文件路徑 
  9.  
  10. d = path.dirname(__file__) if "__file__" in locals() else os.getcwd()  
  11. # 獲取文本txt的路徑(txt和代碼在一個路徑下面)  
  12. text = open(path.join(d, 'BusinessEnglish.txt')).read() 
  13.  
  14. # 讀取我要的圖片文件  
  15. alice_coloring = np.array(Image.open(path.join(d, "alice_color.png"))) 
  16.  
  17. # 設置不顯示的單詞 
  18.  
  19. stopwords = set(STOPWORDS)  
  20. stopwords.add("said"
  21.  
  22. # 設置詞云參數 
  23.  
  24. wc = WordCloud(background_color="white" 
  25. max_words=2000, 
  26.  
  27. mask=alice_coloring,  
  28. stopwords=stopwords,  
  29. max_font_size=40,  
  30. random_state=42)  
  31. # 從文本生成wordcloud  
  32. wc.generate(text) 
  33.  
  34. # 根據圖片,創建顏色 
  35.  
  36. image_colors = ImageColorGenerator(alice_coloring)  
  37. # 把圖片分成3份 
  38.  
  39. fig, axes = plt.subplots(1, 3)  
  40. axes[0].imshow(wc, interpolation="bilinear" 
  41. # recolor wordcloud and show  
  42. # we could also give color_func=image_colors directly in the constructor  
  43. axes[1].imshow(wc.recolor(color_func=image_colors), interpolation="bilinear" 
  44. axes[2].imshow(alice_coloring, cmap=plt.cm.gray, interpolation="bilinear" 
  45. for ax in axes:  
  46. ax.set_axis_off() 

 

  1. # 單獨顯示圖片  
  2. # plt.figure()  
  3. # plt.imshow(wc, interpolation="bilinear" 
  4. # plt.axis("off" 
  5. # plt.figure()  
  6. # plt.imshow(wc.recolor(color_func=image_colors), interpolation="bilinear" 
  7. # plt.axis("off" 
  8. # plt.figure()  
  9. # plt.imshow(alice_coloring, cmap=plt.cm.gray, interpolation="bilinear" 
  10. # plt.axis("off" 
  11. plt.show() 

用頻率繪制WordCloud

上面是直接把一個txt輸進去,系統自動給你算出現次數的

但是實際過程中,我們有時候,是知道單詞出現次數的,我們就想根據已知的次數顯示

這一步,其實就改了一行代碼,

原來是這樣的

  1. wc.generate(text) # 這里的text是一段文字 

現在是這樣的

 

  1. wc.generate_from_frequencies(text) 
  2.  
  3. # 這里的text是一個字典 
  4.  
  5. 'ken': 1, 'was': 47, 'hot': 2, 'water': 2 

如果你已經有一個字典,直接代進去就好了

這里給大家詳細看一下,如果假設我沒有這個字典

我還是一段文字,我想先生成這個字典,再代入進去

這里,你需要安裝一個庫multidict,創建一鍵多值字典

  1. pip install multidict 

用multidict這個庫,我可以把文本變成一個字典

 

Python數據可視化:WordCloud入門(大伙都在用)

通過上圖就可以看到,這個字典有1105個組合,每一個單詞,都統計了出現次數

  1. import multidict as multidict 
  2. import numpy as np 
  3. import os 
  4. import re 
  5. from PIL import Image 
  6. from os import path 
  7. from wordcloud import WordCloud 
  8. import matplotlib.pyplot as plt 
  9. def getFrequencyDictForText(sentence): 
  10.  fullTermsDict = multidict.MultiDict() 
  11.  tmpDict = {} 
  12.  # making dict for counting frequencies 
  13.  for text in sentence.split(" "): 
  14.  if re.match("a|the|an|the|to|in|for|of|or|by|with|is|on|that|be", text): 
  15.  continue 
  16.  val = tmpDict.get(text, 0) 
  17.  tmpDict[text.lower()] = val + 1 
  18.  for key in tmpDict: 
  19.  fullTermsDict.add(key, tmpDict[key]) 
  20.  return fullTermsDict 
  21. def makeImage(text): 
  22.  alice_mask = np.array(Image.open("alice_mask.png")) 
  23.  wc = WordCloud( 
  24.  background_color="white"
  25.  max_words=1000,  
  26.  mask=alice_mask 
  27.  ) 
  28.  # generate word cloud 
  29.  wc.generate_from_frequencies(text) 
  30.  # show 
  31.  plt.imshow(wc, interpolation="bilinear"
  32.  plt.axis("off"
  33.  wc.to_file('frequency.png') # 儲存圖像 
  34.  plt.show() 
  35. # 獲取當前文件路徑 
  36. d = path.dirname(__file__) if "__file__" in locals() else os.getcwd() 
  37. # 獲取文本txt的路徑(txt和代碼在一個路徑下面) 
  38. text = open(path.join(d, 'BusinessEnglish.txt'), encoding='utf-8'
  39. text = text.read() 
  40. makeImage(getFrequencyDictForText(text)) 

生成中英文WordCloud

生成一個中英文混搭的WordCloud

如果你的txt全是中文,那就是全中文的

 

Python數據可視化:WordCloud入門(大伙都在用)

基本步驟

和之前基本也都一樣,就是中文字符,需要增加一個中文詞語切割

這就需要添加一個庫

  1. pip install jieba # 中文切割 
  1. 獲取內容txt的路徑
  2. 設置字體
  3. 切割中文字符
  4. 輸入WordCloud的參數(包括背景色、字號等),指定了生成的形狀
  5. 生成WordCloud
  6. 用matplotlib顯示圖片
  1. import os 
  2. from os import path 
  3. from wordcloud import WordCloud 
  4. from matplotlib import pyplot as plt 
  5. import jieba 
  6. # 獲取當前文件路徑 
  7. d = path.dirname(__file__) if "__file__" in locals() else os.getcwd() 
  8. # 獲取文本txt 
  9. text = open(path.join(d,'商務英語.txt'),encoding='utf-8').read() 
  10. # 設置中文字體 
  11. font_path = 'C:\Windows\Fonts\\simfang.ttf' # 字體路徑 
  12. # 精確切割中文字符 
  13. text = ' '.join(jieba.cut(text, cut_all = False)) 
  14. # 生成詞云 
  15. wc = WordCloud( 
  16.  font_path = font_path, #字體路徑 
  17.  scale=2, 
  18.  max_words = 100, #最多詞個數 
  19.  max_font_size=100, #最大字號 
  20.  background_color='white' #背景色 
  21.  ) 
  22. wc.generate(text) 
  23. # 顯示圖像 
  24. plt.imshow(wc,interpolation='bilinear'
  25. plt.axis('off'
  26. plt.tight_layout() 
  27. # 儲存圖像 
  28. #wc.to_file('標簽云效果圖.png'
  29. #plt.savefig('標簽云效果圖.png',dpi=200) 
  30. plt.show() 

 

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2025-10-10 07:00:00

Python數據可視化數據分析

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2017-10-14 13:54:26

數據可視化數據信息可視化

2019-03-05 09:20:47

Vim可視化模式命令

2022-08-26 09:15:58

Python可視化plotly

2022-02-23 09:50:52

PythonEchartspyecharts

2017-09-13 14:06:32

數據可視化數據圖表數據

2017-10-31 09:38:53

大數據數據可視化Python

2024-08-20 18:16:49

數據可視化Python

2018-11-30 10:28:44

Python反爬網頁

2021-02-07 20:23:09

GoogeBlockly可視化編程

2015-08-20 10:00:45

可視化

2018-12-03 16:50:23

數據可視化數據分析薪水

2018-03-07 11:35:49

Python可視化數據

2019-01-21 15:10:11

佩奇可視化數據

2017-06-29 11:26:08

Python數據可視化

2020-09-02 13:56:03

Python可視化數據

2021-10-11 08:04:22

Python數據行程

2019-01-02 11:59:26

Python數據可視化GDP

2018-11-21 14:38:09

分析在數據電影
點贊
收藏

51CTO技術棧公眾號

妞干网在线观看视频| 性欧美video另类hd尤物| 国产精品欧美一区二区三区| 蜜桃传媒一区二区三区| 国产中文一区二区三区| 欧美一区1区三区3区公司| 亚洲激情女人| 久久精品国产精品国产精品污| 亚洲精品1区| 亚洲v天堂v手机在线| 久久久91麻豆精品国产一区| 波多野结衣天堂| 欧美黑人粗大| 国模视频一区二区| 美女av一区二区| 青青青草视频在线| 亚洲护士老师的毛茸茸最新章节| 亚洲黄色免费av| 自拍亚洲一区欧美另类| 91亚洲精品视频在线观看| 69久久夜色精品国产69乱青草| 亚洲婷婷丁香| 999热视频在线观看| 性欧美videos另类喷潮| 咪咪色在线视频| 91色乱码一区二区三区| 成人免费淫片95视频观看网站| 亚洲狼人国产精品| 日韩av成人| 日韩精品丝袜美腿| 成人a在线观看高清电影| 欧美成人第一页| 国产欧美日韩在线一区二区 | 国产丝袜一区二区三区免费视频| freexxx性亚洲精品| 色青青草原桃花久久综合| 天海翼精品一区二区三区| 成人动漫在线观看视频| 国产在线视频精品一区| 99热在线免费播放| 色综合久久久久网| 2022成人影院| 国产成人久久精品| 美女日韩在线中文字幕| 99色精品视频| 欧美三级韩国三级日本三斤 | 日韩精品看片| 视频一区日韩精品| 91高清视频免费看| 香蕉伊大人中文在线观看| 欧美高跟鞋交xxxxxhd| 91精品国产成人观看| 一区二区三区在线观看www| 国产精品成人一区二区三区夜夜夜| 国产在线视频网| 日韩亚洲一区二区| 亚洲啊v在线观看| 国产自产在线视频| 欧美视频在线观看 亚洲欧| 都市激情综合| 成人国产精品久久久| 国产一区二区伦理| 欧美黑人巨大| 在线视频中文亚洲| 亚洲五月综合| 国产精品巨作av| 成年人羞羞的网站| 国产精品久久久久久久免费观看| 欧美疯狂做受xxxx高潮| 91精品久久久久久久蜜月| 少妇熟女一区二区| 精品国产鲁一鲁一区二区张丽| 成人勉费视频| 96国产粉嫩美女| 久久无码av三级| 2024最新电影免费在线观看| 18一19gay欧美视频网站| 国内精品国产三级国产a久久| 超碰96在线| 在线观看亚洲区| 国产精品普通话对白| 在线看片地址| 亚洲人成五月天| 在线亚洲一区| 97在线观看免费高清视频| 日韩最新在线视频| 99精品国产一区二区青青牛奶| 美女av在线免费观看| 亚洲第一免费网站| 黄网站色视频免费观看| 一区二区三区免费播放| 精品美女一区二区| 亚洲一区二区三区| 99热在线免费播放| 日韩综合中文字幕| 蜜桃精品在线观看| 国产特黄在线| 国产精品黄色av| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 精品这里只有精品| 欧美成人乱码一区二区三区| 国产精品99久久| 成人羞羞视频免费看看| 精品视频偷偷看在线观看| 在线精品一区| 50度灰在线观看| 国产精品国模大尺度私拍| 91色婷婷久久久久合中文| 性国裸体高清亚洲| 日韩在线第一区| 欧美一区三区四区| 一本久久综合| 午夜在线视频播放| 国产一区二区黄色| 欧美日韩高清一区二区三区| 激情91久久| melody高清在线观看| 国产精品久久久久久久久久直播| 欧美午夜精品久久久久久久| 重囗味另类老妇506070| 污视频免费在线看| 亚洲xxxxx性| 欧美色图12p| 国产亚洲毛片| 日韩欧美一起| 中文字幕乱码一区二区三区| 亚洲国语精品自产拍在线观看| 麻豆91在线看| 成年女人在线看片| 成人高清dvd| 色呦呦在线免费观看| 亚洲国产精品一区二区三区| 免费久久99精品国产| 九色porny丨国产首页在线| 亚洲一区 在线播放| 主播福利视频一区| 国产亚洲综合av| 欧美三级午夜理伦三级小说| 少妇激情av一区二区三区| 114国产精品久久免费观看| 欧美日韩成人一区| 蜜桃视频一区二区三区在线观看| 在线免费av资源| 九色porny91| 国产综合久久久久| 91精品国产欧美一区二区| 激情综合一区二区三区| 亚洲伦理网站| 免费在线观看视频| 91久久久久久久久久久| 欧美日韩一区二区不卡| 久久99热狠狠色一区二区| 欧美日韩在线一二三| 中文字幕伦av一区二区邻居| 亚在线播放中文视频| 欧美日韩天天操| 最近2019中文免费高清视频观看www99 | 日韩久久精品一区| 国产精品综合视频| av综合网站| 你懂的在线视频| 日韩精品资源| 欧美成人免费视频| 亚洲图片欧美一区| 日产精品久久久久久久性色| 亚洲成人激情自拍| 日日摸夜夜添夜夜添国产精品| 国产精品伦一区二区| 日本高清中文字幕| 亚洲乱码一区二区三区| 欧美日韩成人网| 日本韩国精品在线| 国产99久久久久| 不卡一区2区| 三级中文字幕在线观看| 免费在线观看视频| 亚洲欧洲另类精品久久综合| 国产做受69高潮| 制服丝袜成人动漫| 国产欧美日产一区| 天堂va蜜桃一区二区三区漫画版| 日韩免费成人| 午夜小视频在线| 人妻熟女一二三区夜夜爱| 99视频国产精品免费观看| 怡红院精品视频| 亚洲大型综合色站| 国产成人午夜99999| 国产精品二区不卡| 欧美lavv| 第一中文字幕在线| 91精品无人成人www| 免费看成人午夜电影| 97久久伊人激情网| 亚洲精品一区二区三区精华液 | 精品中文视频| av在线1区2区| 99热最新网址| 五月天综合婷婷| 亚洲最大成人在线|