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

使用Python中wordcloud庫繪制詞云圖的詳細教程

 更新時間:2024年12月05日 11:26:41   作者:小高要堅強  
這篇文章主要介紹了如何使用Python的wordcloud庫從Excel數(shù)據(jù)生成詞云圖,包括環(huán)境準(zhǔn)備、詞云圖的基本原理、生成詞云圖的步驟、保存詞云圖以及高級自定義(形狀與顏色),文中通過代碼介紹的非常詳細,需要的朋友可以參考下

前言

詞云圖(Word Cloud)是數(shù)據(jù)可視化中常用的一種技術(shù),通過將文字以不同的大小、顏色和方向排列,以展示文本數(shù)據(jù)中詞匯的頻次和重要性。對于文本分析、情感分析、關(guān)鍵詞提取等應(yīng)用,詞云圖都能夠直觀地展現(xiàn)信息。本文將詳細介紹如何使用 Python 中的 wordcloud 庫從 Excel 數(shù)據(jù)繪制詞云圖,幫助您快速上手詞云圖的生成和定制化。

一、環(huán)境準(zhǔn)備

在開始之前,請確保您的開發(fā)環(huán)境中已經(jīng)安裝了以下庫:

pip install wordcloud pandas matplotlib openpyxl
  • wordcloud:用于生成詞云圖。
  • pandas:處理 Excel 文件中的詞頻數(shù)據(jù)。
  • matplotlib:用于展示和保存詞云圖。
  • openpyxl:讀取 Excel 文件。

二、詞云圖的基本原理

詞云圖的生成主要基于詞匯的頻數(shù),頻數(shù)越高的詞匯在圖中的字號越大。在 Python 中,wordcloud 庫提供了多種自定義選項,例如字體、顏色、形狀、最大詞數(shù)等。接下來,我們將基于一個簡單的 Excel 詞頻表格,逐步實現(xiàn)從數(shù)據(jù)加載到詞云圖繪制的過程。

1.步驟一:讀取 Excel 文件

首先,使用 pandas 讀取 Excel 文件,并確保將詞匯和對應(yīng)的頻數(shù)提取出來。假設(shè) Excel 文件包含兩列:詞匯 和 頻數(shù)。

import pandas as pd

# 讀取 Excel 文件
df = pd.read_excel('詞匯頻數(shù)表.xlsx')

# 確保數(shù)據(jù)按需加載
words = df['詞匯'].values
frequencies = df['頻數(shù)'].values

# 將詞匯和頻數(shù)組合成字典
word_freq = dict(zip(words, frequencies))

此時,word_freq 字典包含了詞匯和它們對應(yīng)的頻數(shù),格式如:{‘詞匯1’: 10, ‘詞匯2’: 15, …}。

2.步驟二:生成詞云圖

接下來,我們利用 wordcloud 庫生成詞云圖。可以根據(jù)實際需求自定義詞云圖的顯示樣式。

from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 創(chuàng)建詞云對象
wordcloud = WordCloud(
    font_path='simhei.ttf',  # 設(shè)置字體路徑,確保中文顯示
    background_color='white',  # 背景色
    width=800,  # 圖像寬度
    height=400,  # 圖像高度
    max_words=200,  # 最大詞匯數(shù)
    max_font_size=100,  # 最大字體大小
    colormap='viridis'  # 顏色方案
).generate_from_frequencies(word_freq)

# 繪制并展示詞云圖
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')  # 關(guān)閉坐標(biāo)軸
plt.show()

參數(shù)說明

  • font_path:指定字體文件路徑,這里使用了 “simhei.ttf” 以確保中文能夠正確顯示。
  • background_color:設(shè)置背景顏色,可選值包括 black, white, gray 等。
  • width 和 height:控制詞云圖的尺寸。
  • max_words:控制詞云圖中顯示的最大詞匯數(shù)。
  • max_font_size:控制最大字體的字號。
  • colormap:控制顏色映射方案,支持多種內(nèi)置方案如 viridis, plasma, inferno 等。

3.步驟三:保存詞云圖

繪制完成后,您可以將詞云圖保存為圖片文件,便于分享和展示。

# 保存詞云圖到文件
wordcloud.to_file('wordcloud.png')

一般在該步驟就已經(jīng)結(jié)束啦~

4.步驟四:高級自定義(形狀與顏色)

(1)自定義形狀詞云圖不僅可以是矩形,還可以根據(jù)特定的形狀生成。例如,將詞云限制在一張圖片的輪廓內(nèi)。您可以通過以下方法實現(xiàn):

from PIL import Image
import numpy as np

# 加載形狀模板圖片
mask = np.array(Image.open('mask.png'))

# 生成帶有形狀的詞云
wordcloud = WordCloud(
    font_path='simhei.ttf',
    background_color='white',
    mask=mask,  # 設(shè)置詞云形狀
    contour_width=1,  # 輪廓寬度
    contour_color='black'  # 輪廓顏色
).generate_from_frequencies(word_freq)

# 展示詞云圖
plt.figure(figsize=(10, 10))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

關(guān)鍵點講解

  • 高清圖片作為 mask
    使用高分辨率的黑白圓形圖片,詞云的清晰度會顯著提升。白色部分將作為背景,黑色部分是生成詞云的區(qū)域。

  • contour_width 和 contour_color 參數(shù)
    設(shè)置輪廓寬度和顏色,可以讓詞云圖的形狀更加突出。

  • 調(diào)整 max_font_size 和 max_words
    通過控制詞匯數(shù)量和最大字體大小,確保詞云圖在形狀內(nèi)分布均勻且美觀。

    這是換了一個愛麗絲Alice的mask的詞云圖。
    (2)自定義顏色如果想讓詞云中的詞匯顏色更加多樣,可以使用 ImageColorGenerator 從圖片中提取顏色:

from wordcloud import ImageColorGenerator

# 基于模板圖片生成顏色
image_colors = ImageColorGenerator(mask)

# 繪制詞云圖并應(yīng)用顏色
plt.figure(figsize=(10, 10))
plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation='bilinear')
plt.axis('off')
plt.show()

三、常見問題與解決方案

1.中文亂碼問題:

使用 wordcloud 生成詞云時,若不指定中文字體,中文會顯示為方塊。解決方法是指定支持中文的字體,例如 “simhei.ttf”。

2.詞云生成不均勻:

嘗試調(diào)整 max_font_size 和 mask 參數(shù),使詞云分布更為美觀。

四、總結(jié)

本文詳細介紹了如何從 Excel 表格生成詞云圖,并通過實例展示了詞云圖的自定義生成方法。詞云圖作為一種直觀的數(shù)據(jù)可視化手段,在文本分析中有著廣泛應(yīng)用??梢栽俳Y(jié)合深度學(xué)習(xí)的自然語言處理技術(shù),詞云圖可以進一步擴展用于更復(fù)雜的文本挖掘場景。

到此這篇關(guān)于使用Python中wordcloud庫繪制詞云圖的文章就介紹到這了,更多相關(guān)Python繪制詞云圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python生成requirements.txt的兩種方法

    python生成requirements.txt的兩種方法

    這篇文章主要介紹了python生成requirements.txt的兩種方法,每種方法給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • 10個使用Python必須知道的內(nèi)置函數(shù)

    10個使用Python必須知道的內(nèi)置函數(shù)

    這篇文章小編主要向大家介紹的是10個使用Python必須知道的內(nèi)置函數(shù)reduce()、split()、map()等,更多后置函數(shù)請看下文
    2021-09-09
  • 用Python實現(xiàn)最速下降法求極值的方法

    用Python實現(xiàn)最速下降法求極值的方法

    今天小編就為大家分享一篇用Python實現(xiàn)最速下降法求極值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python生成xml文件方法示例

    Python生成xml文件方法示例

    Python標(biāo)準(zhǔn)庫xml.etree.ElementTree提供了一些生成XML的工具,可以用于創(chuàng)建和操作XML文檔,本文就來介紹以下如何生成生成xml文件,感興趣的可以了解一下
    2023-09-09
  • Python流行ORM框架sqlalchemy的簡單使用

    Python流行ORM框架sqlalchemy的簡單使用

    這篇文章主要介紹了Python流行ORM框架sqlalchemy的簡單使用,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • python使用datetime模塊計算各種時間間隔的方法

    python使用datetime模塊計算各種時間間隔的方法

    這篇文章主要介紹了python使用datetime模塊計算各種時間間隔的方法,實例分析了Python使用datetime模塊進行各種常用的時間操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • python 對多個csv文件分別進行處理的方法

    python 對多個csv文件分別進行處理的方法

    今天小編就為大家分享一篇python 對多個csv文件分別進行處理的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 向量化操作改進數(shù)據(jù)分析工作流的Pandas?Numpy示例分析

    向量化操作改進數(shù)據(jù)分析工作流的Pandas?Numpy示例分析

    這篇文章主要介紹了向量化操作改進數(shù)據(jù)分析工作流的Pandas?Numpy示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Odoo中如何生成唯一不重復(fù)的序列號詳解

    Odoo中如何生成唯一不重復(fù)的序列號詳解

    這篇文章主要給大家介紹了關(guān)于Odoo中如何生成唯一不重復(fù)的序列號的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02
  • Python yield 使用淺析

    Python yield 使用淺析

    這篇文章主要介紹了Python yield 使用淺析,本文給出了多個使用實例來分析yield的使用方法,需要的朋友可以參考下
    2015-05-05

最新評論