利用pyecharts讀取csv并進行數(shù)據(jù)統(tǒng)計可視化的實現(xiàn)
因為需要一個html形式的數(shù)據(jù)統(tǒng)計界面,所以做了一個基于pyecharts包的可視化程序,當(dāng)然matplotlib還是常用的數(shù)據(jù)可視化包,只不過各有優(yōu)劣;基本功能概述就是讀取csv文件數(shù)據(jù),對每列進行數(shù)據(jù)統(tǒng)計并可視化,最后形成html動態(tài)界面,選擇pyecharts的最主要原因就是這個動態(tài)界面簡直非常炫酷。
先上成品圖:
數(shù)據(jù)讀取和數(shù)據(jù)分析模塊:
#導(dǎo)入csv模塊 import csv #導(dǎo)入可視化模塊 from matplotlib import pyplot as plt from pylab import mpl import numpy as np import random from pyecharts import Line,Pie,Grid,Bar,WordCloud #指定文件名,然后使用 with open() as 打開 python_file = 'haiyang.csv' #filename = 'release/111.csv' #python3 LieCharts.py test_chart --python_file 'haiyang.csv' with open(python_file) as f: #創(chuàng)建一個閱讀器:將f傳給csv.reader reader = csv.reader(f) #使用csv的next函數(shù),將reader傳給next,將返回文件的下一行 header_row = next(reader) for index, column_header in enumerate(header_row): print(index, column_header) #讀取置信度 #創(chuàng)建置信度的列表 confidences =[] #創(chuàng)建風(fēng)險等級數(shù)組 highRisk = [] middleRisk = [] lowRisk = [] noRisk = [] person = [] #創(chuàng)建時間點 timePoint = [] #文件信息 fileInformation = [] #遍歷reader的余下的所有行(next讀取了第一行,reader每次讀取后將返回下一行) for row in reader: # 下面就是對某一列數(shù)據(jù)進行遍歷,因為項目保密,就不列出具體代碼了,其實就是各種循環(huán)語句,大家根據(jù)自己的數(shù)據(jù)簡單寫一下就行 fileInformation.append('某某某某') fileInformation.append(row[0]) fileInformation.append(row[1]) fileInformation.append(row[2]) fileInformation.append(len(confidences)) int_confidences = [] for i in confidences: # 同上 len_noRisk = len(noRisk) len_lowRisk = len(lowRisk) len_middleRisk = len(middleRisk) len_highRisk = len(highRisk) len_person = len(person) total = int(len_person+len_highRisk+len_middleRisk+len_lowRisk+len_noRisk) if (len_highRisk > total/2): # 同上
數(shù)據(jù)可視化模塊:
pie_title = Pie('某某某分析報表', "", title_pos='center',title_top="1%",title_text_size=42,subtitle_text_size=20) value=[10000,6181,4386,4055,4000] wordcloud=WordCloud(width=30,height=12,title="某某某某信息",title_pos="22%",title_top="12%",title_text_size=32) wordcloud1=WordCloud(width=30,height=12,title="某某:"+fileInformation[1],title_pos="22%",title_top="22%",title_text_size=26) wordcloud2=WordCloud(width=30,height=12,title="某某:"+fileInformation[2],title_pos="22%",title_top="30%",title_text_size=26) #wordcloud3=WordCloud(width=30,height=12,title="音頻采樣率:"+fileInformation[3],title_pos="22%",title_top="38%",title_text_size=26) #wordcloud4=WordCloud(width=30,height=12,title="總時長/s:"+fileInformation[4],title_pos="22%",title_top="36%",title_text_size=32) # wordcloud.add("",fileInformation,value,word_size_range=[20,100],rotate_step=3 # ,xaxis_pos=200,grid_left="1%",grid_bottom="50%",grid_top="5%",grid_right="80%") #折線圖 line=Line("某某某某某走勢圖",title_pos='center',title_top="51%",title_text_size=32,width=600,height = 20) attr=timePoint line.add("某某某某某",attr,int_confidences,legend_pos="85%",legend_top="54%", mark_point=["max","min"],mark_line=["average"]) #餅圖 attr=["某某某某", "某某某某", "某某某某", "某某某"] v1=[len_highRisk, len_middleRisk, len_lowRisk,len_noRisk] pie=Pie("某某某某某某某",title_pos="65%",title_top="12%",title_text_size=32,width=100,height = 100) pie.add("",attr,v1,radius=[0,30],center=[71,35], legend_pos="85%",legend_top="20%" ,legend_orient="vertical") grid=Grid(width = 1800 ,height= 900)#調(diào)整畫布大小 grid.add(line,grid_left="5%",grid_bottom="2%",grid_top="60%") grid.add(pie_title,grid_bottom="10%") grid.add(wordcloud,grid_left="1%",grid_bottom="50%",grid_top="5%",grid_right="80%") grid.add(wordcloud1,grid_left="1%",grid_bottom="50%",grid_top="5%",grid_right="80%") grid.add(wordcloud2,grid_left="1%",grid_bottom="50%",grid_top="5%",grid_right="80%") #grid.add(wordcloud3,grid_left="1%",grid_bottom="50%",grid_top="5%",grid_right="80%") #grid.add(wordcloud4,grid_left="1%",grid_bottom="50%",grid_top="5%",grid_right="80%") grid.add(pie,grid_left="50%",grid_bottom="50%") #grid.render() grid.render(path='./release/XXXX.html')
根據(jù)需求這個還可以跨平臺跨語言調(diào)用,比如C++程序調(diào)用python進行數(shù)據(jù)分析。
到此這篇關(guān)于利用pyecharts讀取csv并進行數(shù)據(jù)統(tǒng)計可視化的實現(xiàn)的文章就介紹到這了,更多相關(guān)pyecharts讀取csv可視化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python練習(xí)之讀取XML節(jié)點和屬性值的方法
這篇文章主要介紹了Python練習(xí)之讀取XML節(jié)點和屬性值的方法,通過parse函數(shù)可以讀取XML文檔,該函數(shù)返回ElementTree類型的對象,通過該對象的iterfind方法可以對XML中特定節(jié)點進行迭代2022-06-06Python實現(xiàn)的插入排序算法原理與用法實例分析
這篇文章主要介紹了Python實現(xiàn)的插入排序算法原理與用法,簡單描述了插入排序的原理,并結(jié)合實例形式分析了Python實現(xiàn)插入排序的相關(guān)操作技巧,需要的朋友可以參考下2017-11-11python利用paramiko連接遠程服務(wù)器執(zhí)行命令的方法
下面小編就為大家?guī)硪黄猵ython利用paramiko連接遠程服務(wù)器執(zhí)行命令的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10pandas map(),apply(),applymap()區(qū)別解析
這篇文章主要介紹了pandas map(),apply(),applymap()區(qū)別解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Python讀取配置文件-ConfigParser的二次封裝方法
這篇文章主要介紹了Python讀取配置文件-ConfigParser的二次封裝方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02python時間序列數(shù)據(jù)轉(zhuǎn)為timestamp格式的方法
這篇文章主要介紹了python時間序列數(shù)據(jù)轉(zhuǎn)為timestamp格式的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08