您好,登錄后才能下訂單哦!
本篇文章為大家展示了Python中怎么繪制詞云圖,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
在Python中,我們可以用pyecharts做詞云圖,也可以使用matplotlib來繪制詞云圖,并且matplotlib繪制出來的詞云圖更具個性化。
材料:TXT格式的文件、jupyter notebook、PPT、電腦、Python中的jieba分詞庫、wordclound庫、matplotlib庫、微信截圖或其它工具等。
數據結構:
# 導入相關的庫 import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt # 導入文本數據并進行簡單的文本處理。注意文本的編碼為gbk或utf-8等 text = open(r"C:\Users\QDM\Desktop\SAP出庫價\9-07\ciyun.txt",encoding ="gbk").read() # 去掉換行符和空格 text = text.replace('\n',"").replace("\u3000","")
# 強迫癥預覽一下加載進來的內容 text
# 分詞,返回結果為詞的列表 text_cut = jieba.lcut(text) # 將分好的詞用某個符號分割開連成字符串 text_cut = ' '.join(text_cut)
# 導入停詞 # 用于去掉文本中類似于'啊'、'你','我'之類的詞 stop_words = open(r"C:\Users\QDM\Desktop\SAP出庫價\9-07\ciyun.txt",encoding ="gbk").read().split("\n") # 使用WordCloud生成詞云 word_cloud = WordCloud(font_path="simsun.ttc", # 設置詞云字體 background_color="white", # 詞云圖的背景顏色 stopwords=stop_words) # 去掉的停詞 word_cloud.generate(text_cut) # 用matplotlib渲染出詞云圖 # 調整畫布的長和寬 plt.subplots(figsize=(12,8)) plt.imshow(word_cloud) plt.axis("off")
渲染效果:
接下來,我們可根據自己的想法自定義自己想要的詞云形狀。如下:
我們可以現在PPT里面設置出以下效果:
然后再用微信截圖或其它工具裁剪再保存一下。
編寫完整代碼:
# 完整代碼 # 導入相關的庫 import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt from PIL import Image # 加載并處理分詞 text = open(r"C:\Users\QDM\Desktop\SAP出庫價\9-07\ciyun.txt",encoding ="gbk").read() text = text.replace('\n',"").replace("\u3000","") text_cut = jieba.lcut(text) text_cut = ' '.join(text_cut) stop_words = open(r"C:\Users\QDM\Desktop\SAP出庫價\9-07\ciyun.txt",encoding ="gbk").read().split("\n") # 讀取背景圖片,也可以輸入中文 background = Image.open(r"C:\Users\QDM\Desktop\fu.png") graph = np.array(background) word_cloud = WordCloud(font_path="simsun.ttc", background_color="white", mask=graph, # 指定詞云的形狀 stopwords=stop_words) # 渲染效果 word_cloud.generate(text_cut) plt.subplots(figsize=(12,8)) plt.imshow(word_cloud) plt.axis("off")
渲染出來的效果:
上述內容就是Python中怎么繪制詞云圖,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。