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字典的方法详解
Aug 31 Python
Python实现自动为照片添加日期并分类的方法
Sep 30 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
Python3实现的画图及加载图片动画效果示例
Jan 19 Python
PyQt5每天必学之像素图控件QPixmap
Apr 19 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
PYQT5设置textEdit自动滚屏的方法
Jun 14 Python
Python 进程之间共享数据(全局变量)的方法
Jul 16 Python
django fernet fields字段加密实践详解
Aug 12 Python
Python 转换RGB颜色值的示例代码
Oct 13 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 Python
Django web自定义通用权限控制实现方法
Nov 24 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强制下载类型的实现代码
2011/04/21 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
JavaScript 函数调用规则
2009/09/14 Javascript
js模拟点击事件实现代码
2012/11/06 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
用js实现in_array的方法
2013/11/05 Javascript
点击弹出层效果&弹出窗口后网页背景变暗效果的实现代码
2014/02/10 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
微信小程序图表插件(wx-charts)实例代码
2017/01/17 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
js删除数组中的元素delete和splice的区别详解
2018/02/03 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
浅析JavaScript 函数柯里化
2020/09/08 Javascript
初步讲解Python中的元组概念
2015/05/21 Python
Python编程中归并排序算法的实现步骤详解
2016/05/04 Python
基于anaconda下强大的conda命令介绍
2018/06/11 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
机械设计职业生涯规划书
2013/12/27 职场文书
大学生创业计划书的范文
2014/01/07 职场文书
《孔子拜师》教学反思
2014/02/24 职场文书
食品安全标语
2014/06/07 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
2019年员工旷工保证书!
2019/06/28 职场文书
深入理解go slice结构
2021/09/15 Golang