利用pyecharts读取csv并进行数据统计可视化的实现


Posted in Python onApril 17, 2020

因为需要一个html形式的数据统计界面,所以做了一个基于pyecharts包的可视化程序,当然matplotlib还是常用的数据可视化包,只不过各有优劣;基本功能概述就是读取csv文件数据,对每列进行数据统计并可视化,最后形成html动态界面,选择pyecharts的最主要原因就是这个动态界面简直非常炫酷。

先上成品图:

利用pyecharts读取csv并进行数据统计可视化的实现

数据读取和数据分析模块:

#导入csv模块
import csv
#导入可视化模块
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:
    #创建一个阅读器:将f传给csv.reader
    reader = csv.reader(f)
    #使用csv的next函数,将reader传给next,将返回文件的下一行
    header_row = next(reader)

    for index, column_header in enumerate(header_row):
        print(index, column_header)

    #读取置信度
    #创建置信度的列表
    confidences =[]
    #创建风险等级数组
    highRisk = []
    middleRisk = []
    lowRisk = []
    noRisk = []
    person = []
    #创建时间点
    timePoint = []
    #文件信息
    fileInformation = []


    #遍历reader的余下的所有行(next读取了第一行,reader每次读取后将返回下一行)
    for row in reader:

    # 下面就是对某一列数据进行遍历,因为项目保密,就不列出具体代码了,其实就是各种循环语句,大家根据自己的数据简单写一下就行
            
    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):
  # 同上

数据可视化模块:

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)#调整画布大小

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')

根据需求这个还可以跨平台跨语言调用,比如C++程序调用python进行数据分析。

到此这篇关于利用pyecharts读取csv并进行数据统计可视化的实现的文章就介绍到这了,更多相关pyecharts读取csv可视化内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python生成日历实例解析
Aug 21 Python
手动实现把python项目发布为exe可执行程序过程分享
Oct 23 Python
python 获取list特定元素下标的实例讲解
Apr 09 Python
Python文本处理之按行处理大文件的方法
Apr 09 Python
PyQt5每天必学之进度条效果
Apr 19 Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 Python
python实现推箱子游戏
Mar 25 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
Jun 25 Python
Django用数据库表反向生成models类知识点详解
Mar 25 Python
Python中的整除和取模实例
Jun 03 Python
Python 没有main函数的原因
Jul 10 Python
python如何将mat文件转为png
Jul 15 Python
pyecharts动态轨迹图的实现示例
Apr 17 #Python
Windows下Anaconda安装、换源与更新的方法
Apr 17 #Python
Python openpyxl 插入折线图实例
Apr 17 #Python
python 画图 图例自由定义方式
Apr 17 #Python
关于python 的legend图例,参数使用说明
Apr 17 #Python
python 实现仿微信聊天时间格式化显示的代码
Apr 17 #Python
python matplotlib实现将图例放在图外
Apr 17 #Python
You might like
深入了解php4(2)--重访过去
2006/10/09 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
php生成gif动画的方法
2015/11/05 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
js右键菜单效果代码
2007/07/21 Javascript
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
Python操作json数据的一个简单例子
2014/04/17 Python
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
python如何通过protobuf实现rpc
2016/03/06 Python
Python登录注册验证功能实现
2018/06/18 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
Python grpc超时机制代码示例
2020/09/14 Python
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
车间机修工岗位职责
2014/02/28 职场文书
乡镇平安建设汇报材料
2014/08/25 职场文书
婚礼父母致辞
2015/07/28 职场文书
小学生红领巾广播稿
2015/08/19 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python