国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python(wordcloud):根據(jù)詞頻信息(xlsx、csv文件)繪制詞云圖

這篇具有很好參考價值的文章主要介紹了Python(wordcloud):根據(jù)詞頻信息(xlsx、csv文件)繪制詞云圖。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、前言

本文將介紹如何用python根據(jù)詞頻信息(xlsx、csv文件)繪制詞云圖,除了繪制常規(guī)形狀的詞云圖(比如長方形),還可以指定詞云圖的形狀。

二、安裝并引入相關的庫

1、安裝相關的庫
pip install jieba
pip install matplotlib
pip install wordcloud
pip install numpy
pip install Image 
pip install pandas
2、導入相關的庫
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import numpy as np
from PIL import Image # 圖像處理
import pandas as pd

三、數(shù)據(jù)處理

1、文件讀取
  • 本文使用的數(shù)據(jù)集是excel文件(后綴名是.xlsx),該文件包含2個字段:關鍵詞以及對應的頻數(shù)
    Python(wordcloud):根據(jù)詞頻信息(xlsx、csv文件)繪制詞云圖,Python,python,pandas,wordcloud,詞云圖

  • 以下是對excel文件的相關操作:

import pandas as pd
df=pd.read_excel("data-test.xlsx")# 讀取excel數(shù)據(jù)信息
print(df)
  • 數(shù)據(jù)讀取結果如下:

Python(wordcloud):根據(jù)詞頻信息(xlsx、csv文件)繪制詞云圖,Python,python,pandas,wordcloud,詞云圖

  • 只讀取文件的前N條數(shù)據(jù)
# 只獲取前5條數(shù)據(jù)
df_new=df.head(5)
print(df_new)
  • 結果如下:
    Python(wordcloud):根據(jù)詞頻信息(xlsx、csv文件)繪制詞云圖,Python,python,pandas,wordcloud,詞云圖
2、數(shù)據(jù)格式轉換

讀取到excel文件后,需要把數(shù)據(jù)轉換成字典的格式:

# 生成一個DataFrame文件,index為df數(shù)據(jù)的index
data = pd.DataFrame(index=df['關鍵詞'])
# 先將詞頻這一列賦值為0 ,即定義這一列為int格式,后面再賦值
data['詞頻']=0
# 將excel的數(shù)據(jù)寫入data中
for i in range(0,len(df)):
    data.iloc[i,0]=df.iloc[i,1]
# 將詞頻按照從大到小排序
data = data['詞頻'].sort_values(ascending = False)
# 生成dict格式數(shù)據(jù)
data = dict(data)
print(data)
  • 結果如下:

Python(wordcloud):根據(jù)詞頻信息(xlsx、csv文件)繪制詞云圖,Python,python,pandas,wordcloud,詞云圖

四、繪制詞云圖

由于excel文件本身已經(jīng)提供了關鍵詞以及對應的詞頻,因此這里繪制詞云圖的時候不用對文本進行結巴分詞。

1、繪制基本的詞云圖
  • 詞云圖的相關代碼:
import matplotlib.pyplot as plt
from wordcloud import WordCloud

#關鍵詞有中文,因此需要設置顯示字體,否則會亂碼
font_path = "C:\Windows\Fonts\Microsoft YaHei UI\msyh.ttc"
# 設置詞云圖相關參數(shù)
wc=WordCloud(
             font_path=font_path,
             width=400,height=400,
             scale=2,mode="RGBA",
             background_color='white')
# 根據(jù)dict制作詞云圖
wc=wc.generate_from_frequencies(data)
#存儲詞云圖結果
wc.to_file('詞云圖1.png')
  • 圖片展示的相關代碼
#顯示圖片
plt.imshow(wc,interpolation="bilinear")
plt.axis("off")# 不顯示圖像坐標系
# 顯示圖像
plt.show()
plt.savefig("詞云圖2.png")
  • 結果如下:
    Python(wordcloud):根據(jù)詞頻信息(xlsx、csv文件)繪制詞云圖,Python,python,pandas,wordcloud,詞云圖

  • 完整代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-800647.html

import pandas as pd
df=pd.read_excel("data-test.xlsx")# 讀取excel數(shù)據(jù)信息
print(df)

# 只獲取前5條數(shù)據(jù)
df_new=df.head(5)
print(df_new)

# 生成一個DataFrame文件,index為df數(shù)據(jù)的index
data = pd.DataFrame(index=df['關鍵詞'])
# 先將詞頻這一列賦值為0 ,即定義這一列為int格式,后面再賦值
data['詞頻']=0
# 將excel的數(shù)據(jù)寫入data中
for i in range(0,len(df)):
    data.iloc[i,0]=df.iloc[i,1]
# 將詞頻按照從大到小排序
data = data['詞頻'].sort_values(ascending = False)
# 生成dict格式數(shù)據(jù)
data = dict(data)
print(data)

# 生成詞云圖
import matplotlib.pyplot as plt
from wordcloud import WordCloud
#關鍵詞有中文,因此需要設置顯示字體,否則會亂碼
font_path = "C:\Windows\Fonts\Microsoft YaHei UI\msyh.ttc"
# 設置詞云圖的相關參數(shù)
wc=WordCloud(
             font_path=font_path,
             width=500,
             height=500,
             scale=2,
             mode="RGBA",
             background_color='white')

# 根據(jù)dict制作詞云圖
wc=wc.generate_from_frequencies(data)
#存儲詞云圖結果
#存儲圖像
wc.to_file('詞云圖1.png')
#顯示圖片
plt.imshow(wc,interpolation="bilinear")
# 不顯示坐標系
plt.axis("off")
# 顯示圖像
plt.show()
# 保存結果
plt.savefig("詞云圖2.png")
2、繪制指定形狀的詞云圖
(1)準備背景圖片
  • 以下面的背景圖片為例:
    (注:圖片的背景顏色要是白色的;而且不要有水印否則也會被當做背景圖片的一部分?。。。?br>Python(wordcloud):根據(jù)詞頻信息(xlsx、csv文件)繪制詞云圖,Python,python,pandas,wordcloud,詞云圖
(2)處理背景圖片
  • 需要將圖片轉化為數(shù)組,便于用作詞云圖形狀
# 生成詞云圖
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import numpy as np # numpy數(shù)據(jù)處理庫
from PIL import Image # 圖像處理庫,用于讀取背景圖片
img = Image.open('圖片地址') # 加載背景圖片
img_array = np.array(img)    # 將圖片變?yōu)閿?shù)組,便于用作詞云圖形狀
  • 將圖片數(shù)組化之后,結果如下:

Python(wordcloud):根據(jù)詞頻信息(xlsx、csv文件)繪制詞云圖,Python,python,pandas,wordcloud,詞云圖

(3)生成指定形狀的詞云圖
wc=WordCloud(mask=img_array,
             font_path=font_path,
             width=500,
             height=500,
             scale=2,
             contour_color='purple',contour_width=3,
             max_font_size=80,max_words=100,
             background_color='white')
  • 結果如下:
    Python(wordcloud):根據(jù)詞頻信息(xlsx、csv文件)繪制詞云圖,Python,python,pandas,wordcloud,詞云圖

  • 完整代碼

import pandas as pd
df=pd.read_excel("data-test.xlsx")# 讀取excel數(shù)據(jù)信息
print(df)
print("====================================================")

# 只獲取前5條數(shù)據(jù)
# df_new=df.head(5)
# print(df_new)
print("====================================================")

# 生成一個DataFrame文件,index為df數(shù)據(jù)的index
data = pd.DataFrame(index=df['關鍵詞'])
# 先將詞頻這一列賦值為0 ,即定義這一列為int格式,后面再賦值
data['詞頻']=0
# 將excel的數(shù)據(jù)寫入data中
for i in range(0,len(df)):
    data.iloc[i,0]=df.iloc[i,1]
# 將詞頻按照從大到小排序
data = data['詞頻'].sort_values(ascending = False)
# 生成dict格式數(shù)據(jù)
# data = dict(data)
data = str(data)
print(data)
# print(type(data))

print("====================================================")

# 生成詞云圖
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import numpy as np # numpy數(shù)據(jù)處理庫
from PIL import Image # 圖像處理庫,用于讀取背景圖片


img = Image.open('grape.jpg') # 加載背景圖片
img_array = np.array(img)    # 將圖片變?yōu)閿?shù)組,便于用作詞云圖形狀


#關鍵詞有中文,因此需要設置顯示字體,否則會亂碼
font_path = "C:\Windows\Fonts\Microsoft YaHei UI\msyh.ttc"
# 設置詞云圖的相關參數(shù)
# 設置詞云圖的相關參數(shù)
wc=WordCloud(mask=img_array,
             font_path=font_path,
             width=500,
             height=500,
             scale=2,
             contour_color='purple',contour_width=3,
             max_font_size=80,max_words=100,
             background_color='white')

# 根據(jù)dict制作詞云圖
wc=wc.generate(data)
# wc=wc.generate_from_frequencies(data)
#存儲詞云圖結果
#存儲圖像
wc.to_file('詞云圖1.png')
#顯示圖片
plt.imshow(wc,interpolation="bilinear")
# 不顯示坐標系
plt.axis("off")
# 顯示圖像
plt.show()
# 保存結果
plt.savefig("詞云圖2.png")

五、待優(yōu)化

1、指定詞云圖形狀時,出現(xiàn)數(shù)據(jù)類型錯誤的報錯
  • 一開始生成詞云圖的數(shù)據(jù)格式是字典格式,但是后面在指定形狀的時候,因為報錯就把數(shù)據(jù)格式轉換成字符串了,然后就能正常顯示:
# 生成dict格式數(shù)據(jù)
# data = dict(data)
data = str(data)

2、圖片輪廓的提取待改進
  • 在指定形狀的時候,對背景圖片的要求比較高,比如圖片的背景是白色的,圖片的輪換不光滑的話提取效果不好,因此在提取背景圖片的輪廓方面待改進。
img = Image.open('grape.jpg') # 加載背景圖片
img_array = np.array(img)    # 將圖片變?yōu)閿?shù)組,便于用作詞云圖形狀

到了這里,關于Python(wordcloud):根據(jù)詞頻信息(xlsx、csv文件)繪制詞云圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Python Excel xlsx,xls,csv 格式互轉

    Python Excel xlsx,xls,csv 格式互轉

    常常需要對excel的格式進行轉換,借助 win32com 庫,可以實現(xiàn)這個功能,下面我封裝了下,方便使用。 win32com 表格處理函數(shù)底層,不同的格式有不同的數(shù)值對應: 比如下面我重點圈出來,常用的3個格式:csv/xlsx/xls 完整的mapping表格,請點擊鏈接 :XlFileFormat enumeration (Excel) | Mic

    2024年02月04日
    瀏覽(23)
  • python爬取招聘網(wǎng)信息并保存為csv文件

    python爬取招聘網(wǎng)信息并保存為csv文件

    我們以獵聘網(wǎng)為例 一、打開網(wǎng)站查找信息 進入后搜索想要爬取的崗位信息,右鍵選擇 “檢查” 進入開發(fā)者界面 點擊右上角的network,選擇doc 然后點擊圖中的搜索按鈕,輸入想要爬取的崗位名稱,然后刷新頁面,選擇搜索下邊的第二個 這個時候我們看到有我們需要的url,從

    2024年02月09日
    瀏覽(21)
  • python 將 csv轉excel (.xls和.xlsx)的幾種方式

    python 將 csv轉excel (.xls和.xlsx)的幾種方式

    excel 后綴有2種格式, .xls 是從 Excel 97 到 Excel 2003 的默認文件格式,而 .xlsx 是 Excel 2007 及更高版本的默認文件格式。 .xlsx和.xls格式的主要區(qū)別在于,.xls格式單個工作表最多支持65536行,256列。 .xlsx格式最多支持1048576行,16384列。 此外就是,存儲同樣多的數(shù)據(jù),.xlsx格式文件更

    2024年02月08日
    瀏覽(18)
  • 用python將csv轉excel (.xls和.xlsx)的幾種方式

    excel 后綴有2種格式, .xls 是從 Excel 97 到 Excel 2003 的默認文件格式,而 .xlsx 是 Excel 2007 及更高版本的默認文件格式。 .xlsx和.xls格式的主要區(qū)別在于,.xls格式單個工作表最多支持65536行,256列。 .xlsx格式最多支持1048576行,16384列。 此外就是,存儲同樣多的數(shù)據(jù),.xlsx格式文件更

    2024年02月05日
    瀏覽(21)
  • Python日常用法—將列表信息寫入到csv文件、列表中的元素直接更改
  • vue中使用echarts實現(xiàn)省市地圖繪制,根據(jù)數(shù)據(jù)在地圖上顯示柱狀圖信息,增加漣漪特效動畫效果

    vue中使用echarts實現(xiàn)省市地圖繪制,根據(jù)數(shù)據(jù)在地圖上顯示柱狀圖信息,增加漣漪特效動畫效果

    一、實現(xiàn)效果 使用echarts實現(xiàn)省市地圖繪制,你也可以繪制全國地圖。 根據(jù)數(shù)據(jù)在地圖顯示柱狀圖,根據(jù)經(jīng)緯度實現(xiàn)定位。 根據(jù)數(shù)據(jù)顯示數(shù)據(jù),漣漪動態(tài)效果。 當然你也可以根據(jù)你自己的需求,增刪效果哦。 二、實現(xiàn)方法 1、安裝echarts插件 2、獲取省市json數(shù)據(jù) https://datav.

    2024年02月03日
    瀏覽(45)
  • 如何根據(jù)自有數(shù)據(jù)擬合繪制3D曲面圖-Python matplotlib

    如何根據(jù)自有數(shù)據(jù)擬合繪制3D曲面圖-Python matplotlib

    目錄 問題提出 繪制簡單曲面圖 使用自有數(shù)據(jù)擬合繪制 在網(wǎng)上找了很久怎么用自己有的dataframe數(shù)據(jù),擬合出3d的曲面圖,大部分人都是根據(jù)已知函數(shù)去繪制,有幾篇進行擬合繪制,但是還是根據(jù)特定函數(shù)生成的數(shù)據(jù),沒有一篇直接用dataframe數(shù)據(jù)畫3d曲面圖的。講的比較好的幾

    2024年02月09日
    瀏覽(22)
  • python根據(jù)excel數(shù)據(jù),基于散點圖繪制棋盤圖

    python根據(jù)excel數(shù)據(jù),基于散點圖繪制棋盤圖

    一、需求 根據(jù)可視化的需要,下圖的數(shù)據(jù)需要使用棋盤圖的樣式來展示, 原始數(shù)據(jù): 最終效果圖: 二、處理方式 1、先將DataFrame數(shù)據(jù)轉換為Numpy數(shù)組; 2、先使用np.transpose函數(shù),找到0和1值的索引; 3、然后創(chuàng)建散點圖; 4、完成散點圖后,由于需要展示的坐標值是文本,所以

    2024年02月16日
    瀏覽(19)
  • 【Python】Python讀寫.xlsx文件(基本操作、空值補全等)

    【Python】Python讀寫.xlsx文件(基本操作、空值補全等)

    本文介紹如何使用使用 pandas 庫來讀取xlsx文件中的數(shù)據(jù)。 需要安裝openpyxl庫才可以讀取xlsx文件,使用pip install openpyxl。 當然也可以用其他的庫,比如openpyxl、xlrd,可以參考: https://blog.csdn.net/moasad/article/details/120120673 https://blog.csdn.net/liuyingying0418/article/details/101066630 2.1 基本操

    2023年04月13日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包