日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

用Python绘制了若干张词云图,惊艳了所有人

發(fā)布時間:2023/12/9 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用Python绘制了若干张词云图,惊艳了所有人 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在數(shù)據(jù)可視化圖表中,詞云圖的應用隨處可見。它通常是對輸入的一段文字進行詞頻提取,然后以根據(jù)詞匯出現(xiàn)頻率的大小集中顯示高頻詞,簡潔直觀高效.

今天我就來分享一下在Python如何繪制出來精湛的詞云圖。完整代碼,文末獲取。

喜歡記得收藏、點贊、關注。

小試牛刀

我們先來嘗試繪制一張簡單的詞云圖,用到的Python當中的wordcloud模塊來繪制,

import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt

我們導入文本內容,并且去除掉一下?lián)Q行符和空格,代碼如下

text = open(r"明朝那些事兒.txt",encoding='utf8').read() text = text.replace('\n',"").replace("\u3000","")

我們需要將其分成一個個的詞,這個時候就需要用到jieba模塊了,代碼如下

text_cut = jieba.lcut(text) # 將分好的詞用某個符號分割開連成字符串 text_cut = ' '.join(text_cut)

當然了,得到的結果當中或許存在著不少我們不需要看的、無關緊要的內容,這個時候就需要用到停用詞了,我們可以自己來構建,也可以直接使用別人已經構建好的停詞表,這里小編采用的是后者,代碼如下

stop_words = open(r"常見中文停用詞表.txt").read().split("\n")

下面便是繪制詞云圖的核心代碼了

text_cut = jieba.lcut(text) # 將分好的詞用某個符號分割開連成字符串 text_cut = ' '.join(text_cut)

output

這樣一張極其簡單的詞云圖算是做好了,當然我們可以給它添加一個背景圖片,例如下面這張圖片,

主要需要添加的代碼如下所示

background = Image.open(r"5.png") graph = np.array(background)

然后在WorCloud當中添加mask參數(shù)

# 使用WordCloud生成詞云 word_cloud = WordCloud(font_path="simsun.ttc", # 設置詞云字體background_color="white", # 詞云圖的背景顏色stopwords=stop_words, # 去掉的停詞mask=graph) word_cloud.generate(text_cut) word_cloud.to_file("1.png")

output

深度優(yōu)化

除此之外,還有另外一個模塊stylecloud繪制出來的詞云圖也是非常酷炫的,其中我們主要是用到下面這個函數(shù)

gen_stylecloud(text=None,icon_name='fas fa-flag',colors=None,palette='cartocolors.qualitative.Bold_5',background_color="white",max_font_size=200,max_words=2000,stopwords=True,custom_stopwords=STOPWORDS,output_name='stylecloud.png', )

其中幾個常用的參數(shù)有

  • icon_name: 詞云圖的形狀

  • max_font_size: 最大的字號

  • max_words: 可以容納下的最大單詞數(shù)量

  • stopwords: 用于篩選常見的停用詞

  • custom_stopwords: 要是自建有停用詞表,可以拿來用

  • palette: 調色板

我們來嘗試繪制一個詞云圖,代碼如下

stylecloud.gen_stylecloud(text=text_cut,palette='tableau.BlueRed_6',icon_name='fas fa-apple-alt',font_path=r'田英章楷書3500字.ttf',output_name='2.png',stopwords=True,custom_stopwords=stop_words)

output

其中的palette參數(shù)作為調色板,可以任意變換的,具體參考:https://jiffyclub.github.io/palettable/ 這個網站。

pyecharts

最后我們來看一下如何用Pyecharts模塊來進行詞云圖的繪制,代碼如下

from pyecharts import options as opts from pyecharts.charts import Page, WordCloudwords = [("皇帝", 10000),("朱元璋", 6181),("明朝", 4386),("朝廷", 4055),("明軍", 2467),("士兵", 2244),("張居正", 1868),("王守仁", 1281) ]c = (WordCloud().add("", words, word_size_range=[20, 100]).set_global_opts(title_opts=opts.TitleOpts(title="基本示例")))c.render("1.html")

output

出來的結果略顯簡單了,不過這里值得注意的是,pyecharts當中的WordCloud()方法傳入的數(shù)據(jù)是指定的詞語以及其出現(xiàn)的頻次,這個和之前的操作有所不同

聯(lián)系方式

目前開通了技術交流群,群友已超過3000人,添加時最好的備注方式為:來源+興趣方向,方便找到志同道合的朋友,資料、代碼獲取也可以加入

方式1、添加微信號:dkl88191,備注:來自CSDN
方式2、微信搜索公眾號:Python學習與數(shù)據(jù)挖掘,后臺回復:加群

總結

以上是生活随笔為你收集整理的用Python绘制了若干张词云图,惊艳了所有人的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。