python scale()函数_【Python菜鸟进阶大神】Matplotlib数据可视化007:词云
詞云是對網絡文本中出現頻率較高的關鍵詞予以視覺上的突出,形成關鍵詞云層或關鍵詞渲染,從而過濾掉大量的文本信息,使讀者只要一眼掃過文本就可以領略文本的主旨。
詞云用Python是怎么實現的。用wordcloud模塊就可以實現,主要功能是用文本詞匯和詞頻以圖片展示。直觀形象反映詞匯在所有文章中的比重,如:人物標簽的特性、評論區情緒等等。
目 錄
wordcloud詞云和jieba分詞模塊的安裝
WordCloud函數參數介紹
代碼
安裝模塊
pip install + Packagename模塊名稱
1、先查看已經安裝的包模塊
命令 : pip list
2、安裝wordcloud和jieba
有些包如果在程序編寫的時候找不到,都可以用“pip install + Packagename模塊名稱”的方法去安裝。
因為我的已經安裝過,所以提示已經存在。
包安裝完畢,我們先看看WordCloud()參數:
參數說明
help(WordCloud)
WordCloud(font_path=None,width=400,height=200,margin=2,ranks_only=None,prefer_horizontal=0.9,mask=None,scale=1,color_func=None,max_words=200,min_font_size=4,stopwords=None,random_state=None,background_color='black',max_font_size=None,font_step=1,mode='RGB',relative_scaling='auto',regexp=None,collocations=True,colormap=None,normalize_plurals=True,contour_width=0,contour_color='black', repeat=False)
font_path : string 字體路徑,需要展現什么字體就把該字體路徑+后綴名寫上,如:font_path = '黑體.ttf'
width : int (default=400) 輸出的畫布寬度,默認為400像素
height : int (default=200) 輸出的畫布高度,默認為200像素
prefer_horizontal : float (default=0.90) 詞語水平方向排版出現的頻率,默認 0.9
mask : nd-array or None (default=None) 若參數為空,則正常繪制詞云。如果 mask 非空,設置的寬高值將被忽略,形狀被 mask 取代。除白色的部分將不會繪制,其余部分會用于繪制詞云。
scale : float (default=1) 按照比例進行放大畫布,如設置為2,則長和寬都是原來畫布的2倍。
min_font_size : int (default=4) 顯示的最小的字體大小
font_step : int (default=1) 字體步長,如果步長大于1,會加快運算但是可能導致結果出現較大的誤差。
max_words : number (default=200) 要顯示的詞的最大個數
min_font_size : int (default=4) 顯示的最小的字體大小
font_step : int (default=1) 字體步長,如果步長大于1,會加快運算但是可能導致結果出現較大的誤差。
max_words : number (default=200) 要顯示的詞的最大個數
stopwords : set of strings or None 設置需要屏蔽的詞,如果為空,則使用內置的STOPWORDS
background_color: color value (default=”black”) 背景顏色,如background_color='white',背景顏色為白色。
max_font_size : int or None (default=None) 顯示的最大的字體大小
mode : string (default=”RGB”) 當參數為“RGBA”并且background_color不為空時,背景為透明。
relative_scaling : float (default=.5) 詞頻和字體大小的關聯性
color_func : callable, default=None 生成新顏色的函數,如果為空,則使用 self.color_func
regexp : string or None (optional) 使用正則表達式分隔輸入的文本
collocations : bool, default=True 是否包括兩個詞的搭配
colormap: string or matplotlib colormap, default=”viridis” 給每個單詞隨機分配顏色,若指定color_func,則忽略該方法。
代碼實現
#加載包
from wordcloud import WordCloud
import jieba
from PIL import Image
from imageio import imread
import numpy as np
from matplotlib import pyplot as plt
# 繪圖
fig,ax=plt.subplots() #定義畫板
# 打開文件,包含文本類型的文件
with open(r'C:UsersAdministratorDesktopTT.txt','r') as f:
text=f.read()
# 用jieba分詞
wsplit=jieba.lcut(text)
# 將分好的詞用join連接
words=" ".join(wsplit)
# 設定詞云的形狀,用imread函數讀入圖片
shape=imread(r'C:UsersAdministratorDesktop099667.png')
#自定義參數
mycloudword=WordCloud(font_path=r'C:WindowsFontsmsyh.ttf', #字體
scale=8,
margin=1, #頁邊距
background_color='black', #背景色
mask=shape, #形狀
max_words=1500, #包含的最大詞量
min_font_size=14, # 最小的字體
max_font_size=95, #最大字體
stopwords=STOPWORDS, #屏蔽的詞,為空
random_state=4567).generate(words) #隨機種子,隨便設;最后用.genderate()方法傳入分好的詞
# 顯示詞云
ax.imshow(mycloudword)
#不要坐標軸
ax.axis("off")
plt.show()
# 將生成的詞云保存成png文件,儲存本地
mycloudword.to_file(r"C:UsersAdministratorDesktop33535.png")
效果圖如下:
這里展示的是隨便寫入txt文檔的關于Python,機器學習,大數據的一些詞,圖片用證件照。
當然,你可以將你想要的展示的詞文,展示成任何樣子,只需要將參數mask=shape,這里的shape定義成你想要的的圖片的樣子。
原文鏈接https://mp.weixin.qq.com/s/hzrIbH4RonYwqPVtukDkRg
總結
以上是生活随笔為你收集整理的python scale()函数_【Python菜鸟进阶大神】Matplotlib数据可视化007:词云的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: inventor扳手制作视频_安全的安全
- 下一篇: idea terminal中文乱码_Te