plt图片输出 python_利用Python制作词云,wordcloud神器你值得拥有
相信許多人都看到過下面這樣的詞云圖,詞云圖是一種很好的可視化工具,其作用主要是為了文本數(shù)據(jù)的視覺表示,既酷炫又能突出重點。
關(guān)于詞云圖的制作,網(wǎng)上能夠搜集到很多的教程,許多都是利用了專用的工具,這些工具便捷又強大,但是它們普遍存在一個問題:功能太過專一,且適用范圍有限。
今天我們要嘗試的,是使用通用的編程語言python來制作詞云。
python這門編程語言非常地簡單易用,即使看起來很復雜的設置,python用一個庫和幾條代碼就能搞定了~
第一步:下載并安裝Anaconda
進入Anaconda官網(wǎng),選擇適合你電腦的版本,推薦下載使用python3.6版本,因為在最新的版本當中,許多python之前的語言缺陷都得到了解決。
下載完成后,跟一般的軟件一樣安裝即可。安裝好后在cmd中打開jupyter book,并新建一個目錄。
第二步:分析文本生成詞云
詞云分析的對象,是文本。理論上講,文本可以是各種語言的。英文、中文、法文、阿拉伯文……
最近大家都在追權(quán)力的游戲,我就在wiki上面搜索權(quán)力的游戲并將一些文本復制粘貼,存入wordcloud的文本里。
wordcloud把詞云當作一個對象,它可以將文本中詞語出現(xiàn)的頻率作為一個參數(shù)繪制詞云,而詞云的大小、顏色、形狀等都是可以設定的。
生成一個漂亮的詞云文件三步就可以完成。即:
1、配置對象參數(shù)?
2、加載詞云文本??
3、輸出詞云文件 (如果不加說明默認的圖片大小為400 * 200)
首先安裝這個庫:
pip install wordcloud
簡單了解一下wordcloud庫的一些方法:
打開jupyter,進行詞云的繪制。
#讀取詞云文本
filename = "Game of Thrones.txt"
with open(filename) as f:
mytext = f.read()
mytext
然后導入詞云庫,利用 mytext 中存儲的文本內(nèi)容來制造詞云。
from wordcloud import WordCloud
wordcloud = WordCloud().generate(mytext)
這兩句代碼運行沒有任何的反應,但是此時詞云分析已經(jīng)完成了。制作詞云的核心步驟只需要這2行語句,而且第一條還只是從擴展包里找外援。但是程序并不會給我們顯示任何東西。
接下來我們需要python的一個強大庫,matplotlib,執(zhí)行下面的代碼,詞云圖就出來了。
%pylab inlineimport matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
丹尼真的是妥妥的大女主啊,臨冬城的出現(xiàn)比例也很大。
完整代碼如下:
filename = "Game of Thrones.txt"with open(filename) as f:
?mytext = f.read()from wordcloud import WordCloud
wordcloud = WordCloud().generate(mytext)
%pylab inlineimport matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
以上就是利用wordcloud制作詞云的方法,僅僅用了十行代碼就實現(xiàn)了喲~
第三步,自定義圖片詞云
上面的示例用的是英文文檔,默認輸出的詞云圖是長方形的,接下來我們要使用中文文檔,然后實現(xiàn)輸出有形狀的圖片。
這時僅僅使用wordcloud庫沒有辦法實現(xiàn)我們的需求,我們還需要使用jieba和scipy兩個庫。
在生成詞云的時候,Wordcloud默認是按照空格或者標點作為分割符來對目標文本進行分詞處理。
若是英文文本可直接調(diào)用,若是中文文本,則需要先對文本進行分詞處理然后用空格拼接,再調(diào)用wordcloud庫函數(shù)。
jieba是實現(xiàn)中文分詞的組件,它能夠?qū)⒕渥泳_的切開,適合做文本分析,還支持繁體分詞、自定義詞典等,關(guān)于jieba庫的細則可以查看文檔:https://pypi.org/project/jieba/
想要生成各種形狀的圖片,scipy庫是必不可少的圖片處理工具。
本次數(shù)據(jù)文檔選用權(quán)力的游戲第八季百度百科分集劇情的前4集內(nèi)容,將內(nèi)容存儲到一個txt文檔中。
既然需要生成自定義的詞云圖片,那么還需要準備一張圖片備用,建議使用純色背景的圖片,將圖片存儲后備用。
執(zhí)行下面的代碼即可生成圖片型的詞云圖:
#導入wordcloud模塊和matplotlib模塊from wordcloud import WordCloud,ImageColorGeneratorimport matplotlib.pyplot as pltfrom scipy.misc import imreadimport jieba#讀取一個txt文件
text = open(r'C:Users...權(quán)力的游戲.txt','r').read()#讀入背景圖片
bg_pic = imread(r'C:Users....jfif')
wordlist_after_jieba = jieba.cut(text, cut_all = True)
wl_space_split = " ".join(wordlist_after_jieba)#生成詞云
font = r'C:WindowsFontssimfang.ttf'
wc = WordCloud(mask=bg_pic,background_color='white',font_path=font, scale=1.5).generate(wl_space_split)
image_colors = ImageColorGenerator(bg_pic)#顯示詞云圖片
plt.imshow(wc)
plt.axis('off')
plt.show()
利用python制作詞云非常簡單,趕快動手操作起來吧!
- DataCastle -
總結(jié)
以上是生活随笔為你收集整理的plt图片输出 python_利用Python制作词云,wordcloud神器你值得拥有的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在文字上划横线_如何设计一张618促
- 下一篇: if python 判断函数返回值_Py