Python读取Excel数据并生成图表过程解析


Posted in Python onJune 18, 2020

一、需求背景

自己一直在做一个周基金定投模拟,每周需要添加一行数据,并生成图表。以前一直是用Excel实现的。但数据行多后,图表大小调整总是不太方便,一般只能通过缩放比例解决。

二、需求实现目标

通过Python程序读取Excel文件中的数据,生成图表,最好将生成图表生成至浏览器页面,后期数据多之后,也能自动缩放,而不会出现显示不全问题。

三、需求实现代码

# 调用本地echarts.min.js 文件

from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST ='D:\\develop_study\\Python38\\pyecharts\\' 

from pyecharts.charts import Line # 数据可视化折线图
import pyecharts.options as opts
import xlrd # 读取excel文件
import webbrowser  # 用于自动打开生成的HTML文件

# 打开excel
data = xlrd.open_workbook('E:\知识点滴积累\蜗牛定投价格曲线_python.xlsx') # 打开excel工作簿
table = data.sheet_by_index(1) # 打开第一个页签
print(f'当前已定投周数:{table.nrows}-1') # 获取行数
print(f'当前总计列数:{table.ncols}') # 获取列数

# print(table.row_values(0)) # 获取行数据

dt_dates = []  # 日期
dt_hs300s =[] # 沪深300
dt_zz500s =[] # 中证500
dt_nz100s =[] # 纳指100
dt_bp500s =[] # 标普500


for i in range(1,table.nrows):
  dt_date = table.row_values(i)[0]
  dt_dates.append(dt_date)

  dt_hs300 = table.row_values(i)[1]
  dt_hs300s.append(dt_hs300)

  dt_zz500 = table.row_values(i)[2]
  dt_zz500s.append(dt_zz500)

  dt_nz100 = table.row_values(i)[3]
  dt_nz100s.append(dt_nz100)

  dt_bp500 = table.row_values(i)[4]
  dt_bp500s.append(dt_bp500)

# print(dt_dates)
# print(dt_hs300s)
# print(dt_zz500s)
# print(dt_nz100s)
# print(dt_bp500s)

# 折线图
line = Line(init_opts=opts.InitOpts(width='1200px',height='700px'))
line.add_xaxis(dt_dates)
line.add_yaxis('沪深300', dt_hs300s)
line.add_yaxis('中证500', dt_zz500s)
line.add_yaxis('纳指100', dt_nz100s)
line.add_yaxis('标普500', dt_bp500s)


# 所有折线图显示平均值、最大值、最小值
line.set_series_opts(
  markpoint_opts=opts.MarkPointOpts(
    data=[
          opts.MarkPointItem(type_='average',name='平均值'),
          opts.MarkPointItem(type_='max',name='最大值'),
          opts.MarkPointItem(type_='min',name='最小值')
    ]
  )

)


# 设置标题等
line.set_global_opts(title_opts=opts.TitleOpts('跟踪指数周变化曲线'),
           # 显示工具箱
           toolbox_opts=opts.ToolboxOpts(),
           xaxis_opts=opts.AxisOpts(axislabel_opts={"rotate":45,"interval":0})

           )
    # interval:0 横轴信息全部显示
    # rotate:45 45度倾斜显示
    

line.render('价格曲线可视化3.html')
webbrowser.open('价格曲线可视化3.html')
  • 添加标题
  • x轴刻度全部显示
  • 设置各对象最大值、最小值、平均值
  • 设置图表大小

四、需求实现效果

Python读取Excel数据并生成图表过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python排序方法实例分析
Apr 30 Python
Pycharm学习教程(7)虚拟机VM的配置教程
May 04 Python
Linux CentOS7下安装python3 的方法
Jan 21 Python
Python实现识别手写数字大纲
Jan 29 Python
Python实现OpenCV的安装与使用示例
Mar 30 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
Django中FilePathField字段的用法
May 21 Python
Python操控mysql批量插入数据的实现方法
Oct 27 Python
Manjaro、pip、conda更换国内源的方法
Nov 17 Python
python tkinter实现下载进度条及抖音视频去水印原理
Feb 07 Python
Python数据分析之pandas函数详解
Apr 21 Python
用Python生成会跳舞的美女
Jan 18 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
Jun 18 #Python
python名片管理系统开发
Jun 18 #Python
一文轻松掌握python语言命名规范规则
Jun 18 #Python
Python学习之路之pycharm的第一个项目搭建过程
Jun 18 #Python
基于PyTorch的permute和reshape/view的区别介绍
Jun 18 #Python
Python Switch Case三种实现方法代码实例
Jun 18 #Python
Python3开发环境搭建详细教程
Jun 18 #Python
You might like
php 特殊字符处理函数
2008/09/05 PHP
网站用php实现paypal整合方法
2010/11/28 PHP
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
js文件中调用js的实现方法小结
2009/10/23 Javascript
javascript实用小函数使用介绍
2013/11/11 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
js控制按钮,防止频繁点击响应的实例
2017/02/15 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
老生常谈进程线程协程那些事儿
2017/07/24 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
生产厂厂长岗位职责
2013/12/25 职场文书
财务管理职业生涯规划范文
2013/12/27 职场文书
喜之郎果冻广告词
2014/03/20 职场文书
建房协议书
2014/04/11 职场文书
高中学生期末评语
2014/04/25 职场文书
小学班级特色活动方案
2014/08/31 职场文书
大学生支教感言
2015/08/01 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
基于Redis的List实现特价商品列表功能
2021/08/30 Redis
php访问对象中的成员的实例方法
2021/11/17 PHP
MySQL日期时间函数知识汇总
2022/03/17 MySQL