最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python繪制詞云圖最全教程(自定義png形狀、指定字體、顏色)

 更新時(shí)間:2024年05月06日 08:39:05   作者:早八起得來(lái)  
詞云圖是一種直觀的方式來(lái)展示文本數(shù)據(jù),它易于理解,能展示出詞語(yǔ)的頻率使用情況,對(duì)于文本分析非常有用,這篇文章主要給大家介紹了python繪制詞云圖(自定義png形狀、指定字體、顏色)的相關(guān)資料,需要的朋友可以參考下

前言

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

一、引用的庫(kù)

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

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

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

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è)置停用詞

# 按指定長(zhǎng)度和詞性提取詞
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)告", "表示誠(chéng)摯感謝","戰(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è)置的是詞長(zhǎng),想要提取兩個(gè)兩個(gè)字的就設(shè)置2,三個(gè)三個(gè)字的就設(shè)置3(以此類(lèi)推)

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)還是長(zhǎng)方形(正方形),應(yīng)該是png圖片“有問(wèn)題”,可以嘗試以下的處理

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

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

# 如果當(dāng)前位深是32的話(huà),可以不用寫(xiě)轉(zhuǎn)RGBA模式的這一句,但是寫(xiě)上也沒(méi)啥問(wèn)題
# 從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ù)都是按著我的來(lái)設(shè)置的話(huà),這里直接復(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)

# 按指定長(zhǎng)度和詞性提取詞
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)告", "表示誠(chéng)摯感謝","戰(zhàn)略"])

#設(shè)置png掩膜(yourfile.png根據(jù)實(shí)際路徑進(jìn)行替換)
background = Image.open("yourfile.png").convert('RGB')
mask = np.array(background)
'''
# 如果當(dāng)前位深是32的話(huà),可以不用寫(xiě)轉(zhuǎn)RGBA模式的這一句,但是寫(xiě)上也沒(méi)啥問(wèn)題
# 從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繪制詞云圖的文章就介紹到這了,更多相關(guān)python繪制詞云圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python制作一個(gè)惡意軟件刪除工具

    使用Python制作一個(gè)惡意軟件刪除工具

    這篇文章主要為大家詳細(xì)介紹了如何使用Python制作一個(gè)惡意軟件刪除工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • Python實(shí)現(xiàn)標(biāo)記數(shù)組的連通域

    Python實(shí)現(xiàn)標(biāo)記數(shù)組的連通域

    這篇文章主要為大家詳細(xì)介紹了如何通過(guò)Python實(shí)現(xiàn)標(biāo)記數(shù)組的連通域,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下
    2023-04-04
  • Python內(nèi)建序列通用操作6種實(shí)現(xiàn)方法

    Python內(nèi)建序列通用操作6種實(shí)現(xiàn)方法

    這篇文章主要介紹了Python內(nèi)建序列通用操作6種實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • python查看列的唯一值方法

    python查看列的唯一值方法

    今天小編就為大家分享一篇python查看列的唯一值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 解讀Tensorflow2.0訓(xùn)練損失值降低,但測(cè)試正確率基本不變的情況

    解讀Tensorflow2.0訓(xùn)練損失值降低,但測(cè)試正確率基本不變的情況

    這篇文章主要介紹了Tensorflow2.0訓(xùn)練損失值降低,但測(cè)試正確率基本不變的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python的Bottle框架中獲取制定cookie的教程

    Python的Bottle框架中獲取制定cookie的教程

    這篇文章主要介紹了Python的Bottle框架中獲取制定cookie的教程,主要是針對(duì)別的路徑而不是當(dāng)前頁(yè)面的cookie,需要的朋友可以參考下
    2015-04-04
  • Python制作可視化報(bào)表的示例詳解

    Python制作可視化報(bào)表的示例詳解

    在數(shù)據(jù)展示中使用圖表來(lái)分享自己的見(jiàn)解,是個(gè)非常常見(jiàn)的方法。這也是Tableau、Power BI這類(lèi)商業(yè)智能儀表盤(pán)持續(xù)流行的原因之一。本文主主要介紹了一個(gè)用Python制作可視化報(bào)表的案例,感興趣的可以學(xué)習(xí)一下
    2022-02-02
  • Python之ReportLab繪制條形碼和二維碼的實(shí)例

    Python之ReportLab繪制條形碼和二維碼的實(shí)例

    下面小編就為大家分享一篇Python之ReportLab繪制條形碼和二維碼的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • 基于Python的Post請(qǐng)求數(shù)據(jù)爬取的方法詳解

    基于Python的Post請(qǐng)求數(shù)據(jù)爬取的方法詳解

    這篇文章主要介紹了基于Python的Post請(qǐng)求數(shù)據(jù)爬取的方法,需要的朋友可以參考下
    2019-06-06
  • matplotlib基本圖形繪制操作實(shí)例

    matplotlib基本圖形繪制操作實(shí)例

    這篇文章主要為大家介紹了matplotlib基本圖形繪制操作實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12

最新評(píng)論

浦北县| 钦州市| 南木林县| 西乌珠穆沁旗| 连江县| 建昌县| 汤原县| 福州市| 宝山区| 锦州市| 磐石市| 砚山县| 鄄城县| 大同市| 澄迈县| 湘潭市| 东乌珠穆沁旗| 岳阳县| 福建省| 裕民县| 永济市| 普兰县| 桦甸市| 安顺市| 东乌珠穆沁旗| 墨玉县| 新野县| 安多县| 松溪县| 衡东县| 隆德县| 昭平县| 葫芦岛市| 郸城县| 福泉市| 高雄市| 南宫市| 屯留县| 平阳县| 齐齐哈尔市| 遂宁市|