利用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读取注册表中值的方法
Apr 08 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
Jul 23 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
Python 实现购物商城,含有用户入口和商家入口的示例
Sep 15 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 Python
Python shutil模块用法实例分析
Oct 02 Python
np.dot()函数的用法详解
Jan 17 Python
python实现简单井字棋小游戏
Mar 05 Python
Python 存取npy格式数据实例
Jul 01 Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 07 Python
Pytorch 中net.train 和 net.eval的使用说明
May 22 Python
使用Python拟合函数曲线
Apr 14 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
人族 Terran 基本策略
2020/03/14 星际争霸
php microtime获取浮点的时间戳
2010/02/21 PHP
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
js操作数据库实现注册和登陆的简单实例
2016/05/26 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
vue添加class样式实例讲解
2019/02/12 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
Python下的subprocess模块的入门指引
2015/04/16 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
代码分析Python地图坐标转换
2018/02/08 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
python 项目目录结构设置
2020/02/14 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
技能比武方案
2014/05/21 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏
mysql数据库如何转移到oracle
2022/12/24 MySQL