利用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中使用pyhook实现键盘监控的例子
Jul 18 Python
详解python函数传参是传值还是传引用
Jan 16 Python
python实现定时自动备份文件到其他主机的实例代码
Feb 23 Python
python3 破解 geetest(极验)的滑块验证码功能
Feb 24 Python
新手如何发布Python项目开源包过程详解
Jul 11 Python
Python高级特性之闭包与装饰器实例详解
Nov 19 Python
如何基于Python创建目录文件夹
Dec 31 Python
jupyter notebook插入本地图片的实现
Apr 13 Python
Python figure参数及subplot子图绘制代码
Apr 18 Python
python中什么是面向对象
Jun 11 Python
python使用opencv resize图像不进行插值的操作
Jul 05 Python
pytorch 权重weight 与 梯度grad 可视化操作
Jun 05 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+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
jQuery入门知识简介
2010/03/04 Javascript
javascript中的if语句使用介绍
2013/11/20 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
谈谈vue中mixin的一点理解
2017/12/12 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
JS自定义滚动条效果
2020/03/13 Javascript
[04:29]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/02/01 DOTA
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
使用Python生成XML的方法实例
2017/03/21 Python
利用python对Excel中的特定数据提取并写入新表的方法
2018/06/14 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
python按比例随机切分数据的实现
2019/07/11 Python
Python @property装饰器原理解析
2020/01/22 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
Python如何使用vars返回对象的属性列表
2020/10/17 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
美国儿童玩具、装扮和玩偶商店:Magic Cabin
2018/09/02 全球购物
纽约海:Sea New York
2018/11/04 全球购物
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
自我鉴定总结
2014/03/24 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL