自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用Python繪制了若干張詞云圖,驚艷了所有人

開發(fā) 后端
今天小編就來分享一下在Python如何繪制出來精湛的詞云圖。

在數(shù)據(jù)可視化圖表中,詞云圖的應用隨處可見。它通常是對輸入的一段文字進行詞頻提取,然后以根據(jù)詞匯出現(xiàn)頻率的大小集中顯示高頻詞,簡潔直觀高效,今天小編就來分享一下在Python如何繪制出來精湛的詞云圖。

小試牛刀

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

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

我們導入文本內(nèi)容,并且去除掉一下?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)

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

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

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

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

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: 調(diào)色板

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

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ù)作為調(diào)色板,可以任意變換的,具體參考:https://jiffyclub.github.io/palettable/ 這個網(wǎng)站。

pyecharts

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

from pyecharts import options as opts
from pyecharts.charts import Page, WordCloud
words = [
("皇帝", 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

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

責任編輯:龐桂玉 來源: 印象Python
相關推薦

2022-05-16 19:53:15

Pythongif動圖

2021-01-27 13:50:17

AI 數(shù)據(jù)機器學習

2024-03-25 09:03:07

Redis開源開發(fā)

2024-05-30 13:13:43

2019-04-15 13:39:10

容器開發(fā)Docker

2020-04-07 16:25:39

微信深色模式黑色模式

2021-11-07 14:31:52

PythonWeb頁面

2013-08-27 13:59:05

微軟鮑爾默

2021-03-31 13:45:59

CPU運維命令

2023-09-28 08:21:20

i++++i高并發(fā)

2013-12-09 10:16:03

Android firAndroid開發(fā)移動創(chuàng)業(yè)

2018-07-16 16:39:00

數(shù)據(jù)

2019-12-24 19:36:45

人工智能Windows軟件

2020-02-20 16:42:40

云端Kubernetes容器

2013-06-18 09:40:29

BYOD誤解

2022-05-16 09:34:17

Python可視化圖表

2021-12-08 18:50:19

機器人人工智能AI

2019-10-17 14:07:43

技術(shù)云計算Docker

2022-06-28 10:03:56

CentOSLinux
點贊
收藏

51CTO技術(shù)棧公眾號