利用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中随机函数random用法实例
Apr 30 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
11月编程语言排行榜 Python逆袭C#上升到第4
Nov 15 Python
详解tensorflow训练自己的数据集实现CNN图像分类
Feb 07 Python
python中返回矩阵的行列方法
Apr 04 Python
Django2.1.3 中间件使用详解
Nov 26 Python
Python使用pandas对数据进行差分运算的方法
Dec 22 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
Apr 26 Python
简单瞅瞅Python vars()内置函数的实现
Sep 27 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
May 10 Python
Django 解决distinct无法去除重复数据的问题
May 20 Python
python实现数字炸弹游戏程序
Jul 17 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线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
ThinkPHP文件缓存类代码分享
2015/04/22 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
Javascript学习笔记5 类和对象
2010/01/11 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
js插件YprogressBar实现漂亮的进度条效果
2015/04/20 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
微信JS接口大全
2016/08/25 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
nodejs基础之buffer缓冲区用法分析
2018/12/26 NodeJs
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
2020/09/21 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
python 打印对象的所有属性值的方法
2016/09/11 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
Python开发之pip安装及使用方法详解
2020/02/21 Python
python map比for循环快在哪
2020/09/21 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
python3实现简单飞机大战
2020/11/29 Python
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
常用的HTML5列表标签
2017/06/20 HTML / CSS
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
《赵州桥》教学反思
2014/02/17 职场文书
药品业务员岗位职责
2014/04/17 职场文书
高三学生评语大全
2014/04/25 职场文书
装配出错检讨书
2014/09/23 职场文书
退学证明范本3篇
2014/10/29 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
求职自我评价怎么写
2015/03/09 职场文书
会议营销主持词
2015/07/03 职场文书
golang 实现并发求和
2021/05/08 Golang