知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 公眾號(hào)相關(guān) >
Python數(shù)據(jù)可視化案例:分析微信公眾號(hào)數(shù)據(jù)
發(fā)表時(shí)間:2020-9-25
發(fā)布人:葵宇科技
瀏覽次數(shù):78
本文的文字及圖片來(lái)源于網(wǎng)絡(luò),僅供學(xué)習(xí)、交流使用,不具有任何商業(yè)用途,版權(quán)歸原作者所有,如有問(wèn)題請(qǐng)及時(shí)聯(lián)系我們以作處理。
以下文章來(lái)源于云+社區(qū),作者 算法與編程之美
轉(zhuǎn)載地址
https://blog.csdn.net/fei347795790?t=1
1 前言
在日益發(fā)展的社會(huì),人們每天都會(huì)產(chǎn)生大量的數(shù)據(jù),很多工作中也常常涉及到對(duì)數(shù)據(jù)的處理。而眾多的數(shù)據(jù)讓人頭昏眼花,所以需要對(duì)數(shù)據(jù)進(jìn)行可視化。將數(shù)據(jù)轉(zhuǎn)換為大腦更容易接受的圖表形式。所以有了后來(lái)的excel表格,它在數(shù)據(jù)的可視化處理方面非常強(qiáng)大。但是隨著數(shù)據(jù)量的增大,用excel往往都是重復(fù)之前的步驟。效率也就變得很低了,還容易枯燥。于是,python的可視化數(shù)據(jù)來(lái)了,在重復(fù)這件事上,相信沒(méi)有誰(shuí)可以比程序來(lái)得更快更好。所以今天小編就通過(guò)實(shí)例給大家簡(jiǎn)單展示下數(shù)據(jù)的可視化處理。
2 模塊準(zhǔn)備
首先是python環(huán)境不用多說(shuō),然后是可讀取excel的xlrd模塊和強(qiáng)大的可視化模塊pyecharts。兩者都通過(guò)pip安裝即可。
pip install xlrd
pip install pyecharts
然后直接導(dǎo)入對(duì)應(yīng)模塊和類即可。
#導(dǎo)入模塊
from pyecharts.charts import Bar
from pyecharts import options as opts
import xlrd #讀取excel的模塊
3 具體步驟
3.1 讀取excel表格
為了方便首先將準(zhǔn)備好的excel表格放置在py文件同目錄下,然后運(yùn)行以下代碼即可讀取。
data = xlrd.open_workbook("gongzhonghao.xls") #打開(kāi)工作表
table = data.sheets()[0] #找到excel中對(duì)應(yīng)的sheet表,這里是第一個(gè)
讀取excel表格的行和列都是以列表的形式返回的。
3.2 數(shù)據(jù)分析
通過(guò)以上代碼讀取到對(duì)應(yīng)的excel表格后,在通過(guò)簡(jiǎn)單的代碼對(duì)數(shù)據(jù)進(jìn)行處理。首先要知道一個(gè)柱狀圖有什么。柱狀圖有x、y軸。一般x軸只有一條數(shù)據(jù),所以通過(guò)上面excel表中的內(nèi)容可以得出用作者作為x軸最好。然后小編這次的目的是統(tǒng)計(jì)每個(gè)作者發(fā)布的文章數(shù)和文章總得分(總得分=每篇文章的在看數(shù)加閱讀數(shù)的1/10和點(diǎn)贊數(shù)的1/2)。所以就可以以文章數(shù)和得分作為y軸。
allData = {} #用來(lái)儲(chǔ)存作者與文章的數(shù)據(jù)
for i in range(1,table.nrows): #遍歷表格中的每一行
look = table.row_values(i)[2] #在看
read = table.row_values(i)[3] #閱讀數(shù)
like = table.row_values(i)[4] #點(diǎn)贊
score = look + read * (1 / 10) + like * (1 / 2) #每篇文章得分
if table.row_values(i)[1] not in allData.keys(): #判斷儲(chǔ)存數(shù)據(jù)的字典中是否有該作者
allData.get(table.row_values(i)[1]) #沒(méi)有就添加
allData[table.row_values(i)[1]] = [1,score] #為這個(gè)作者添加值(文章數(shù)和得分)
else:
allData[table.row_values(i)[1]][0] += 1 #有就文章數(shù)加一
allData[table.row_values(i)[1]][1] += score #累計(jì)得分
author = list(allData.keys()) #獲取作者表
datas = list(allData.values()) #獲取數(shù)據(jù)表
articleCount = [] #儲(chǔ)存文章數(shù)
articleScore = [] #儲(chǔ)存得分
for i in datas: #遍歷數(shù)據(jù)表
articleCount.append(i[0]) #添加文章數(shù)
articleScore.append(round(i[1],1)) #添加的得分
上面的代碼簡(jiǎn)單的運(yùn)用了python的遍歷和字典的知識(shí)。由于本文的重點(diǎn)是可視化,所以這里就不做詳細(xì)說(shuō)明了。
3.3可視化
通過(guò)上面的數(shù)據(jù)處理,就已經(jīng)拿到了x,y軸的數(shù)據(jù)了,接下來(lái)就直接使用pyecharts模塊進(jìn)行渲染配置。
bar = (Bar() #對(duì)柱狀圖進(jìn)行簡(jiǎn)單配置
.add_xaxis(author) #設(shè)置橫坐標(biāo)為作者
.add_yaxis('文章數(shù)',articleCount) #縱坐標(biāo)一為文章數(shù)
.add_yaxis('得分',articleScore) #縱坐標(biāo)二為得分
.set_global_opts( #全局配置,標(biāo)題、副標(biāo)題、坐標(biāo)軸、主題等
title_opts=opts.TitleOpts(title = '公眾號(hào)得分?jǐn)?shù)據(jù)分析',subtitle = '近期作者發(fā)布文章數(shù)與得分情況')
)
)
bar.render() #生成html文件
小編這里只是簡(jiǎn)單的配置了標(biāo)題和副標(biāo)題。對(duì)于pyecharts的全部配置可以說(shuō)是九牛一毛。還有很多的參數(shù)可以更改,詳情請(qǐng)到官網(wǎng)查看官方文檔:
4 完整代碼
#導(dǎo)入模塊
from pyecharts.charts import Bar
from pyecharts import options as opts
import xlrd #讀取excel的模塊
data = xlrd.open_workbook("gongzhonghao.xls") #打開(kāi)工作表
table = data.sheets()[0] #找到excel中對(duì)應(yīng)的sheet表,這里是第一個(gè)
allData = {} #用來(lái)儲(chǔ)存作者與文章的數(shù)據(jù)
for i in range(1,table.nrows): #遍歷表格中的每一行
look = table.row_values(i)[2] #在看
read = table.row_values(i)[3] #閱讀數(shù)
like = table.row_values(i)[4] #點(diǎn)贊
score = look + read * (1 / 10) + like * (1 / 2) #每篇文章得分
if table.row_values(i)[1] not in allData.keys(): #判斷儲(chǔ)存數(shù)據(jù)的字典中是否有該作者
allData.get(table.row_values(i)[1]) #沒(méi)有就添加
allData[table.row_values(i)[1]] = [1,score] #為這個(gè)作者添加值(文章數(shù)和得分)
else:
allData[table.row_values(i)[1]][0] += 1 #有就文章數(shù)加一
allData[table.row_values(i)[1]][1] += score #累計(jì)得分
author = list(allData.keys()) #獲取作者表
datas = list(allData.values()) #獲取數(shù)據(jù)表
articleCount = [] #儲(chǔ)存文章數(shù)
articleScore = [] #儲(chǔ)存得分
for i in datas: #遍歷數(shù)據(jù)表
articleCount.append(i[0]) #添加文章數(shù)
articleScore.append(round(i[1],1)) #添加的得分
bar = (Bar() #對(duì)柱狀圖進(jìn)行簡(jiǎn)單配置
.add_xaxis(author) #設(shè)置橫坐標(biāo)為作者
.add_yaxis('文章數(shù)',articleCount) #縱坐標(biāo)一為文章數(shù)
.add_yaxis('得分',articleScore) #縱坐標(biāo)二為得分
.set_global_opts( #全局配置,標(biāo)題、副標(biāo)題、坐標(biāo)軸、主題等
title_opts=opts.TitleOpts(title = '公眾號(hào)得分?jǐn)?shù)據(jù)分析',subtitle = '近期作者發(fā)布文章數(shù)與得分情況')
)
)
bar.render() #生成html文件
相關(guān)案例查看更多
相關(guān)閱讀
- 網(wǎng)站建設(shè)案例
- 曲靖小程序開(kāi)發(fā)
- 云南網(wǎng)站建設(shè)方法
- 電商網(wǎng)站建設(shè)
- 網(wǎng)站建設(shè)專家
- 昆明網(wǎng)站制作
- 高端網(wǎng)站建設(shè)公司
- 云南小程序開(kāi)發(fā)首選品牌
- 云南網(wǎng)站建設(shè)費(fèi)用
- 網(wǎng)站建設(shè)方案 doc
- 云南科技公司
- 網(wǎng)站建設(shè)報(bào)價(jià)
- 云南小程序制作
- 汽車拆解系統(tǒng)
- 紅河小程序開(kāi)發(fā)
- 云南小程序被騙蔣軍
- 國(guó)內(nèi)知名網(wǎng)站建設(shè)公司排名
- SEO
- php網(wǎng)站
- 云南網(wǎng)站建設(shè)案例
- 全國(guó)前十名小程序開(kāi)發(fā)公司
- 保險(xiǎn)網(wǎng)站建設(shè)公司
- 云南省住房建設(shè)廳網(wǎng)站
- 制作一個(gè)小程序
- 報(bào)廢車
- 軟件開(kāi)發(fā)
- 網(wǎng)絡(luò)公司哪家好
- 關(guān)鍵詞快速排名
- 網(wǎng)站搭建
- 網(wǎng)站建設(shè)公司地址