利用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中的exec、eval使用实例
Sep 23 Python
提升Python程序运行效率的6个方法
Mar 31 Python
Python的Django框架中的URL配置与松耦合
Jul 15 Python
使用Python求解最大公约数的实现方法
Aug 20 Python
Python中的字符串操作和编码Unicode详解
Jan 18 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
Jul 24 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
Apr 22 Python
Python运维之获取系统CPU信息的实现方法
Jun 11 Python
Puppeteer使用示例详解
Jun 20 Python
PyQt Qt Designer工具的布局管理详解
Aug 07 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
Apr 01 Python
Python如何使用PIL Image制作GIF图片
May 16 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
PHP中使用array函数新建一个数组
2015/11/19 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
PHP count()函数讲解
2019/02/03 PHP
根据分辩率调用不同的CSS.
2007/01/08 Javascript
JAVASCRIPT对象及属性
2007/02/13 Javascript
js下用层来实现select的title提示属性
2010/02/23 Javascript
jquery 选项卡效果 新手代码
2011/07/08 Javascript
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
js中符号转意问题示例探讨
2013/08/19 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
jQuery替换textarea中换行的方法
2015/06/10 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
2016/03/02 Javascript
jquery操作ID带有变量的节点实例
2016/12/07 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
python数据结构学习之实现线性表的顺序
2018/09/28 Python
详解python的argpare和click模块小结
2019/03/31 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
django框架中间件原理与用法详解
2019/12/10 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
什么是python的函数体
2020/06/19 Python
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
年终晚会主持词
2014/03/25 职场文书
中层干部培训方案
2014/06/16 职场文书
合伙购房协议样本
2014/10/06 职场文书
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android
简单聊聊Golang中defer预计算参数
2022/03/25 Golang
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL