欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)繪制自定義形狀的詞云示例

 更新時(shí)間:2024年04月30日 11:42:56   作者:早八起得來  
這篇文章主要介紹了Python實(shí)現(xiàn)繪制自定義形狀的詞云示例,通過將一段文本中出現(xiàn)頻率高的單詞按其出現(xiàn)頻率大小以及顏色深淺排列成一個(gè)詞云圖形,從而更好地展示文本中的信息,需要的朋友可以參考下

前言

本文為分總結(jié)構(gòu),有特定需求的可以查閱前部分分結(jié)構(gòu)的對(duì)應(yīng)板塊,最后的總結(jié)不懂的可以在分板塊查閱解釋。分板塊分別有引用的庫、閱讀文本、分詞并設(shè)置停用詞、設(shè)置png掩膜、字體設(shè)置、生成詞云圖,感謝您點(diǎn)開這篇分享,祝順利。

一、引用的庫

from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
import numpy as np
import jieba.posseg as pseg
from collections import Counter
import PIL.Image as Image
from matplotlib import colors

確保已安裝以上的庫,不然運(yùn)行會(huì)報(bào)錯(cuò)

#安裝庫可以用清華的鏡像網(wǎng)站(可能會(huì)更新,可以上官網(wǎng)查詢地址)

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

二、閱讀文本(讓python閱讀)

# 閱讀文本(這里yourfile.txt,根據(jù)文本所在具體位置進(jìn)行設(shè)置)
text = open("yourfile.txt", encoding="utf-8").read()  
words = pseg.cut(text)

這里"yourfile.txt",根據(jù)文本所在具體位置進(jìn)行設(shè)置

三、分詞并設(shè)置停用詞

# 按指定長度和詞性提取詞
report_words = []
for word, flag in words:
    if (len(word) >= 2) and ('n' in flag): #這里設(shè)置統(tǒng)計(jì)的字?jǐn)?shù)
        report_words.append(word)
# 設(shè)置停用詞
stopwords = set(STOPWORDS)
stopwords.update(["的", "感謝", "我代表", "以上", "報(bào)告", "表示誠摯感謝","戰(zhàn)略"])
# 去除停用詞
report_words = [word for word in report_words if word not in stopwords]
# 統(tǒng)計(jì)高頻詞匯
result = Counter(report_words).most_common(200) #詞的個(gè)數(shù)
# 建立詞匯字典
content = dict(result)
#輸出詞頻統(tǒng)計(jì)結(jié)果
for i in range(50):
    word,flag=result[i]
    print("{0:<10}{1:>5}".format(word,flag))
 

len(word)設(shè)置的是詞長,想要提取兩個(gè)兩個(gè)字的就設(shè)置2,三個(gè)三個(gè)字的就設(shè)置3(以此類推)

result = Counter(report_words).most_common(200) 這里的200是指統(tǒng)計(jì)200個(gè)詞用于繪制,可以根據(jù)需求設(shè)置

四、設(shè)置png掩膜

#設(shè)置png掩膜(yourfile.png根據(jù)實(shí)際路徑進(jìn)行替換)
background = Image.open("yourfile.png")
mask = np.array(background)

yourfile.png根據(jù)實(shí)際路徑進(jìn)行替換

如果輸出結(jié)構(gòu)還是長方形(正方形),應(yīng)該是png圖片“有問題”,可以嘗試以下的處理

1.用p圖軟件把圖片改成純黑色(可能別的也可以,我沒試過)

2.用以下代碼把白色背景改為透明

# 如果當(dāng)前位深是32的話,可以不用寫轉(zhuǎn)RGBA模式的這一句,但是寫上也沒啥問題
# 從RGB(24位)模式轉(zhuǎn)成RGBA(32位)模式
img = Image.open("yourfile.png").convert('RGBA')
W, L = img.size
white_pixel = (0, 0, 0, 0)  # 白色
for h in range(W):
    for i in range(L):
        if img.getpixel((h, i)) == white_pixel:
            img.putpixel((h, i), (255, 255, 255, 0))  # 設(shè)置透明
img.save("yourfile_new.png")  # 自己設(shè)置保存地址

這里有兩個(gè)參數(shù)需要修改

yourfile.png根據(jù)實(shí)際路徑進(jìn)行替換,yourfile_new.png(這是修改后圖片)根據(jù)實(shí)際路徑進(jìn)行替換

五、字體設(shè)置

# 設(shè)置字體樣式路徑
font_path = r"C:\Windows\Fonts\STLITI.TTF"
# 設(shè)置字體大小
max_font_size =200
min_font_size =10
# 建立顏色數(shù)組,可更改顏色
color_list = ['#FF274B']
# 調(diào)用顏色數(shù)組
colormap = colors.ListedColormap(color_list)

字體樣式:一般都在這個(gè)路徑,可以自己根據(jù)需求修改或者下載想要的字體

字體大?。鹤畲蠛妥钚「鶕?jù)需求更改

字體顏色:可以不要這行代碼(默認(rèn)設(shè)置),也可以根據(jù)需求設(shè)置一種或多種顏色(我這里只設(shè)置了一種)

六、生成詞云圖

# 生成詞云
wordcloud = WordCloud(scale=4,                         #輸出清晰度
                      font_path=font_path,             #輸出路徑
                      colormap=colormap,               #字體顏色
                      width=1600,                      #輸出圖片寬度
                      height=900,                      #輸出圖片高度
                      background_color='white',        #圖片背景顏色
                      stopwords=stopwords,             #停用詞
                      mask=mask,                       #掩膜
                      max_font_size=max_font_size,     #最大字體大小
                      min_font_size=min_font_size)     #最小字體大小
wordcloud.generate_from_frequencies(content)
# 使用 matplotlib 顯示詞云
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
# 保存詞云圖
wordcloud.to_file("wordcloud.png")

如果前面參數(shù)都是按著我的來設(shè)置的話,這里直接復(fù)制粘貼就好

總結(jié)

from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
import numpy as np
import jieba.posseg as pseg
from collections import Counter
import PIL.Image as Image
from matplotlib import colors
# 閱讀文本(這里yourfile.txt,根據(jù)文本所在具體位置進(jìn)行設(shè)置)
text = open("yourfile.txt", encoding="utf-8").read()
words = pseg.cut(text)
# 按指定長度和詞性提取詞
report_words = []
for word, flag in words:
    if (len(word) >= 2) and ('n' in flag): #這里設(shè)置統(tǒng)計(jì)的字?jǐn)?shù)
        report_words.append(word)
# 統(tǒng)計(jì)高頻詞匯
result = Counter(report_words).most_common(200) #詞的個(gè)數(shù)
# 建立詞匯字典
content = dict(result)
#輸出詞頻統(tǒng)計(jì)結(jié)果
for i in range(50):
    word,flag=result[i]
    print("{0:<10}{1:>5}".format(word,flag))
# 設(shè)置停用詞
stopwords = set(STOPWORDS)
stopwords.update(["的", "感謝", "我代表", "以上", "報(bào)告", "表示誠摯感謝","戰(zhàn)略"])
#設(shè)置png掩膜(yourfile.png根據(jù)實(shí)際路徑進(jìn)行替換)
background = Image.open("yourfile.png").convert('RGB')
mask = np.array(background)
'''
# 如果當(dāng)前位深是32的話,可以不用寫轉(zhuǎn)RGBA模式的這一句,但是寫上也沒啥問題
# 從RGB(24位)模式轉(zhuǎn)成RGBA(32位)模式
img = Image.open("yourfile.png").convert('RGBA')
W, L = img.size
white_pixel = (0, 0, 0, 0)  # 白色
for h in range(W):
    for i in range(L):
        if img.getpixel((h, i)) == white_pixel:
            img.putpixel((h, i), (255, 255, 255, 0))  # 設(shè)置透明
img.save("yourfile_new.png")  # 自己設(shè)置保存地址
'''
# 設(shè)置字體樣式路徑
font_path = r"C:\Windows\Fonts\STLITI.TTF"
# 設(shè)置字體大小
max_font_size =200
min_font_size =10
# 建立顏色數(shù)組,可更改顏色
color_list = ['#FF274B']
# 調(diào)用顏色數(shù)組
colormap = colors.ListedColormap(color_list)
# 生成詞云
wordcloud = WordCloud(scale=4,                         #輸出清晰度
                      font_path=font_path,             #輸出路徑
                      colormap=colormap,               #字體顏色
                      width=1600,                      #輸出圖片寬度
                      height=900,                      #輸出圖片高度
                      background_color='white',        #圖片背景顏色
                      stopwords=stopwords,             #停用詞
                      mask=mask,                       #掩膜
                      max_font_size=max_font_size,     #最大字體大小
                      min_font_size=min_font_size)     #最小字體大小
wordcloud.generate_from_frequencies(content)
# 使用 matplotlib 顯示詞云
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
# 保存詞云圖
wordcloud.to_file("wordcloud.png")

生成示例

到此這篇關(guān)于Python實(shí)現(xiàn)繪制自定義形狀的詞云示例的文章就介紹到這了,更多相關(guān)Python繪制詞云內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • appium測(cè)試之APP元素定位及基本工具介紹

    appium測(cè)試之APP元素定位及基本工具介紹

    看了我文章了相信都了解了web端的元素定位了,沒看的,既然進(jìn)來了那么肯定多多少少知道些,本文主要來介紹APP的元素定位有哪些定位方式,我們又怎么去連接APP,然后通過工具去獲取元素
    2021-09-09
  • Python使用Selenium實(shí)現(xiàn)模擬登錄的示例代碼

    Python使用Selenium實(shí)現(xiàn)模擬登錄的示例代碼

    Selenium(本文基于python3.8)是一個(gè)功能強(qiáng)大的自動(dòng)化測(cè)試工具,它可以用于模擬用戶在瀏覽器中的行為,比如點(diǎn)擊、輸入、滾動(dòng)等等,本教程將詳細(xì)介紹如何使用Python編寫一個(gè)模擬登錄地爬蟲,使用XPath等多種元素匹配方法,需要的朋友可以參考下
    2023-08-08
  • python實(shí)現(xiàn)scrapy爬蟲每天定時(shí)抓取數(shù)據(jù)的示例代碼

    python實(shí)現(xiàn)scrapy爬蟲每天定時(shí)抓取數(shù)據(jù)的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)scrapy爬蟲每天定時(shí)抓取數(shù)據(jù)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • opencv導(dǎo)入頭文件時(shí)報(bào)錯(cuò)#include的解決方法

    opencv導(dǎo)入頭文件時(shí)報(bào)錯(cuò)#include的解決方法

    這篇文章主要介紹了opencv導(dǎo)入頭文件時(shí)報(bào)錯(cuò)#include的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Pytorch搭建YoloV5目標(biāo)檢測(cè)平臺(tái)實(shí)現(xiàn)過程

    Pytorch搭建YoloV5目標(biāo)檢測(cè)平臺(tái)實(shí)現(xiàn)過程

    這篇文章主要為大家介紹了Pytorch搭建YoloV5目標(biāo)檢測(cè)平臺(tái)實(shí)現(xiàn)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • python包裝和授權(quán)學(xué)習(xí)教程

    python包裝和授權(quán)學(xué)習(xí)教程

    包裝是指對(duì)一個(gè)已經(jīng)存在的對(duì)象進(jìn)行系定義加工,實(shí)現(xiàn)授權(quán)是包裝的一個(gè)特性,下面這篇文章主要給大家介紹了關(guān)于python包裝和授權(quán)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Python常見的錯(cuò)誤以及其解決方案

    Python常見的錯(cuò)誤以及其解決方案

    這篇文章主要給大家介紹了關(guān)于Python常見的錯(cuò)誤以及其解決方案的相關(guān)資料,學(xué)習(xí)python任重而道遠(yuǎn),對(duì)于初學(xué)者來說,最難受的就是報(bào)錯(cuò),本文總結(jié)了一些常見錯(cuò)誤,需要的朋友可以參考下
    2023-08-08
  • Python matplotlib繪圖設(shè)置圖例案例

    Python matplotlib繪圖設(shè)置圖例案例

    這篇文章主要給大家分享Python matplotlib繪圖設(shè)置圖例案例,過程會(huì)學(xué)到edgecolor 圖例邊框線顏色 facecolor 圖例背景色 shadow 是否添加陰影 title 圖例標(biāo)題 fontsize 設(shè)置字體大小,小編覺得挺有意思的,感興趣的小伙伴也可以參考一下
    2021-12-12
  • Python GUI自動(dòng)化實(shí)現(xiàn)繞過驗(yàn)證碼登錄

    Python GUI自動(dòng)化實(shí)現(xiàn)繞過驗(yàn)證碼登錄

    這篇文章主要介紹了python GUI自動(dòng)化實(shí)現(xiàn)繞過驗(yàn)證碼登錄,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python使用imap-tools模塊下載郵件附件的示例

    python使用imap-tools模塊下載郵件附件的示例

    imap-tools模塊是python的第三方擴(kuò)展,?它使用標(biāo)準(zhǔn)庫imaplib,并將常見的郵件處理事件封裝,郵件處理起來代碼短,下面給大家介紹下python使用imap-tools模塊下載郵件中的附件示例代碼,感興趣的朋友一起看看吧
    2021-12-12

最新評(píng)論