python詞云庫(kù)wordcloud自定義詞云制作步驟分享
wordcloud庫(kù)常規(guī)方法
import wordcloud c=wordcloud.WordCloud() #構(gòu)建詞云對(duì)象,配置對(duì)象參數(shù) c.generate("wordcloud by python ") #加載詞云文本 c.to_file("pywordcloud.png") #輸出詞云文件
詞云生成步驟:
- 分隔:以空格分隔單詞
- 統(tǒng)計(jì):單詞出現(xiàn)次數(shù)并過(guò)濾(1-2個(gè)字母會(huì)被濾掉)
- 字體:根據(jù)統(tǒng)計(jì)配置字號(hào)
- 布局:顏色環(huán)境尺寸
c=wordcloud.WordCloud(參數(shù)) 配置對(duì)象參數(shù)
參數(shù)(像素) | 描述 |
---|---|
width(默認(rèn)400px) | c=wordcloud.WordCloud(width=600) |
height(默認(rèn)200px) | c=wordcloud.WordCloud(height=400) |
min_font_size(默認(rèn)4號(hào)) | c=wordcloud.WordCloud(min_font_size=10) |
max_font_size(根據(jù)高度自動(dòng)調(diào)節(jié)) | c=wordcloud.WordCloud(max_font_size=20) |
font_step(默認(rèn)1,步長(zhǎng)) | c=wordcloud.WordCloud(font_step=2) |
font_path(默認(rèn)None,字體路徑) | c=wordcloud.WordCloud(font_path="msyh.ttc") |
max_words(默認(rèn)200,最大數(shù)量) | c=wordcloud.WordCloud(max_words=20) |
stop_words(指定去除單詞的列表) | c=wordcloud.WordCloud(stop_words={"python"}) |
background_color(默認(rèn)黑色,詞云背景色) | c=wordcloud.WordCloud(background_color="red") |
Scale 默認(rèn)值1。值越大,圖像密度越大越清晰
mask參數(shù)自定義詞云形狀:
#指定詞云形狀,默認(rèn)是長(zhǎng)方形,需要引用imread()函數(shù) from scipy.misc import imread mk=imread("pic.png") c=wordcloud.WordCloud(mask=mk)
第三方庫(kù)
- numpy :多維數(shù)組運(yùn)算
- matplotlib :繪圖與數(shù)據(jù)可視化
- pillow :圖片處理
- wordcloud :詞云制作
- imageio :圖像輸入輸出
- jieba :中文分詞
- snownlp :中文情感和自然語(yǔ)言處理
- itchat :微信好友抓取
讀取文件
政府工作報(bào)告詞云:
import wordcloud # 從外部.txt文件中讀取大段文本,存入變量txt中 f = open('政府工作報(bào)告.txt',encoding='utf-8') txt = f.read() # 構(gòu)建詞云對(duì)象w,設(shè)置詞云圖片寬、高、字體、背景顏色等參數(shù) w = wordcloud.WordCloud(width=1000, height=700, background_color='white', font_path='msyh.ttc') # 將txt變量傳入w的generate()方法,給詞云輸入文字 w.generate(txt) # 將詞云圖片導(dǎo)出到當(dāng)前文件夾 w.to_file('Test1.png')
==wordcloud中文分詞(適合中文詞云)==
# 導(dǎo)入詞云制作庫(kù)wordcloud和中文分詞庫(kù)jieba import jieba import wordcloud # 構(gòu)建并配置詞云對(duì)象w w = wordcloud.WordCloud(width=1000, height=700, background_color='white', font_path='msyh.ttc') # 調(diào)用jieba的lcut()方法對(duì)原始文本進(jìn)行中文分詞,得到string txt = '由于Python語(yǔ)言的簡(jiǎn)潔性、易讀性以及可擴(kuò)展性, \ 在國(guó)外用Python做科學(xué)計(jì)算的研究機(jī)構(gòu)日益增多, \ 一些知名大學(xué)已經(jīng)采用Python來(lái)教授程序設(shè)計(jì)課程。 \ 例如卡耐基梅隆大學(xué)的編程基礎(chǔ)、 \ 麻省理工學(xué)院的計(jì)算機(jī)科學(xué)及編程導(dǎo)論就使用Python語(yǔ)言講授。' txtlist = jieba.lcut(txt) string = " ".join(txtlist) # 將string變量傳入w的generate()方法,給詞云輸入文字 w.generate(string) # w.generate(" ".join(jieba.lcut(txt))) #三段代碼合一簡(jiǎn)寫(xiě) # 將詞云圖片導(dǎo)出到當(dāng)前文件夾 w.to_file('Teste2.png')
自定義繪制指定形狀的詞云
import jieba import wordcloud from scipy.misc import imread mask=imread("圖片形狀.png") #導(dǎo)入自定義形狀圖片賦給mask # 從外部.txt文件中讀取大段文本,存入變量txt中 f = open('政府工作報(bào)告.txt',encoding='utf-8') txt = f.read() #閱讀提取 f.close() #關(guān)閉 # 構(gòu)建詞云對(duì)象w,設(shè)置詞云圖片寬、高、字體、背景顏色等參數(shù) w = wordcloud.WordCloud(width=1000, height=700, background_color='white',mask=mask, font_path='msyh.ttc') # 將txt變量傳入w的generate()方法,給詞云輸入文字 w.generate(" ".join(jieba.lcut(txt))) # 將詞云圖片導(dǎo)出到當(dāng)前文件夾 w.to_file('Test1.png')
==勾勒詞云輪廓==
# 導(dǎo)入詞云制作庫(kù)wordcloud import wordcloud # 將外部文件包含的文本保存在string變量中 string = open('hamlet.txt').read() # 導(dǎo)入imageio庫(kù)中的imread函數(shù),并用這個(gè)函數(shù)讀取本地圖片,作為詞云形狀圖片 import imageio mk = imageio.imread("ren.png") # 構(gòu)建詞云對(duì)象w,注意增加參數(shù)contour_width和contour_color設(shè)置輪廓寬度和顏色 w = wordcloud.WordCloud(background_color="white", mask=mk, contour_width=1, contour_color='steelblue' ) # # 將string變量傳入w的generate()方法,給詞云輸入文字 w.generate(string) # 將詞云圖片導(dǎo)出到當(dāng)前文件夾 w.to_file('p2.png')
==按模板自身顏色繪制詞云==
# 導(dǎo)入繪圖庫(kù)matplotlib和詞云制作庫(kù)wordcloud import matplotlib.pyplot as plt from wordcloud import WordCloud,ImageColorGenerator # 將外部文件包含的文本保存在text變量中 text = open('alice.txt').read() # 導(dǎo)入imageio庫(kù)中的imread函數(shù),并用這個(gè)函數(shù)讀取本地圖片queen2.jfif,作為詞云形狀圖片 import imageio mk = imageio.imread("alice.png") # 構(gòu)建詞云對(duì)象w wc = WordCloud(background_color="white", mask=mk,) # 將text字符串變量傳入w的generate()方法,給詞云輸入文字 wc.generate(text) # 調(diào)用wordcloud庫(kù)中的ImageColorGenerator()函數(shù),提取模板圖片各部分的顏色 image_colors = ImageColorGenerator(mk) # 顯示原生詞云圖、按模板圖片顏色的詞云圖和模板圖片,按左、中、右顯示 fig, axes = plt.subplots(1, 3) # 最左邊的圖片顯示原生詞云圖 axes[0].imshow(wc) # 中間的圖片顯示按模板圖片顏色生成的詞云圖,采用雙線性插值的方法顯示顏色 axes[1].imshow(wc.recolor(color_func=image_colors), interpolation="bilinear") # 右邊的圖片顯示模板圖片 axes[2].imshow(mk, cmap=plt.cm.gray) for ax in axes: ax.set_axis_off() plt.show() # 給詞云對(duì)象按模板圖片的顏色重新上色 wc_color = wc.recolor(color_func=image_colors) # 將詞云圖片導(dǎo)出到當(dāng)前文件夾 wc_color.to_file('out-alice.png')
到此這篇關(guān)于python詞云庫(kù)wordcloud自定義詞云制作步驟分享的文章就介紹到這了,更多相關(guān)python wordcloud詞云制作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyCharm的設(shè)置方法和第一個(gè)Python程序的建立
今天小編就為大家分享一篇PyCharm的設(shè)置方法和第一個(gè)Python程序的建立,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01python3訪問(wèn)sina首頁(yè)中文的處理方法
如果用python3的urllib或python2的urllib2訪問(wèn)網(wǎng)頁(yè),都不能得到正確的中文字符串,看下面的解決方法2014-02-02Python實(shí)現(xiàn)復(fù)制文檔數(shù)據(jù)
我們百度搜索一些東西得時(shí)候,經(jīng)常找到文檔里面然后就會(huì)發(fā)現(xiàn)需要充值才能復(fù)制!怎么可以不花錢也保存呢?今天就分享給大家一個(gè)python獲取文檔數(shù)據(jù)得方法,需要的可以收藏一下2022-12-12Python標(biāo)準(zhǔn)庫(kù)之Math,Random模塊使用詳解
math數(shù)學(xué)模塊和random隨機(jī)模塊是Python常用的標(biāo)準(zhǔn)庫(kù)之一。本文將詳細(xì)為大家介紹一下這兩個(gè)模塊的使用方法,需要的小伙伴可以參考一下2022-05-05基于Python實(shí)現(xiàn)簡(jiǎn)易學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)易學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07python list.sort()根據(jù)多個(gè)關(guān)鍵字排序的方法實(shí)現(xiàn)
Python list內(nèi)置sort()方法用來(lái)排序,也可以用python內(nèi)置的全局sorted()方法來(lái)對(duì)可迭代的序列排序生成新的序列,本文詳細(xì)的介紹了python list.sort()根據(jù)多個(gè)關(guān)鍵字排序,感興趣的可以了解一下2021-12-12零基礎(chǔ)學(xué)習(xí)Python爬蟲(chóng)
這篇文章主要講解了Python爬蟲(chóng)的基礎(chǔ)知識(shí),文中相關(guān)知識(shí)講解的非常詳細(xì),感興趣的小伙伴可以參考參考2021-08-08