利用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 相关文章推荐
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
Feb 24 Python
详解Python中的__getitem__方法与slice对象的切片操作
Jun 27 Python
Python中强大的命令行库click入门教程
Dec 26 Python
Python中异常重试的解决方案详解
May 05 Python
Python随机生成手机号、数字的方法详解
Jul 21 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
Python根据已知邻接矩阵绘制无向图操作示例
Jun 23 Python
Sanic框架安装与简单入门示例
Jul 16 Python
Python 中的lambda函数介绍
Oct 10 Python
python 将字符串中的数字相加求和的实现
Jul 18 Python
Python基于execjs运行js过程解析
Nov 27 Python
Python字符串对齐方法使用(ljust()、rjust()和center())
Apr 26 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 程序员应该使用的10个组件
2009/10/31 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
javascript闭包的理解和实例
2010/08/12 Javascript
jQuery 1.5 源码解读 面向中高阶JSER
2011/04/05 Javascript
删除节点的jquery代码
2014/01/13 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
jquery悬浮提示框完整实例
2016/01/13 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
详解vue如何使用rules对表单字段进行校验
2018/10/17 Javascript
express启用https使用小记
2019/05/21 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
Python 2与Python 3版本和编码的对比
2017/02/14 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
详解Python Qt的窗体开发的基本操作
2019/07/14 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
后勤服务中心总经理工作职责
2014/03/03 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
小学校长个人总结
2015/03/03 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript