利用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 文件和路径操作函数小结
Nov 23 Python
Python map和reduce函数用法示例
Feb 26 Python
Python中的getopt函数使用详解
Jul 28 Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
浅谈Python 集合(set)类型的操作——并交差
Jun 30 Python
新手如何快速入门Python(菜鸟必看篇)
Jun 10 Python
Python探索之自定义实现线程池
Oct 27 Python
Python实现去除列表中重复元素的方法小结【4种方法】
Apr 27 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
Feb 28 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 Python
python安装sklearn模块的方法详解
Nov 28 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中DOMElement操作xml文档实例演示
2013/03/26 PHP
file_get_contents("php://input", "r")实例介绍
2013/07/01 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
php微信开发之图片回复功能
2018/06/14 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
javascript下4个跨浏览器必备的函数
2010/03/07 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
javascript模拟select,jselect的方法实现
2012/11/08 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
JavaScript调用客户端Java程序的方法
2015/07/27 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
vue使用openlayers实现移动点动画
2020/09/24 Javascript
[00:35]可解锁地面特效
2018/12/20 DOTA
python生成指定尺寸缩略图的示例
2014/05/07 Python
Python的净值数据接口调用示例分享
2016/03/15 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
创意爱尔兰礼物:Creative Irish Gifts
2020/01/29 全球购物
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
应届生法律顾问求职信
2013/11/19 职场文书
公立医院改革实施方案
2014/03/14 职场文书
春节慰问信范文
2015/02/15 职场文书
导游词之青城山景区
2019/09/27 职场文书
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server
python游戏开发Pygame框架
2022/04/22 Python