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之玩转字符串(1)
Sep 14 Python
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
python列表的增删改查实例代码
Jan 30 Python
Win7 64位下python3.6.5安装配置图文教程
Oct 27 Python
Python文件读写常见用法总结
Feb 22 Python
python实现的发邮件功能示例
Sep 11 Python
利用python实现PSO算法优化二元函数
Nov 13 Python
Python中的引用和拷贝实例解析
Nov 14 Python
关于Numpy数据类型对象(dtype)使用详解
Nov 27 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
Apr 02 Python
python else语句在循环中的运用详解
Jul 06 Python
python 基于DDT实现数据驱动测试
Feb 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
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
php中函数的形参与实参的问题说明
2010/09/01 PHP
javascript Prototype 对象扩展
2009/05/15 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
2018/07/07 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
详解Vue 项目中的几个实用组件(ts)
2019/10/29 Javascript
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
.netcore+vue 实现压缩文件下载功能
2020/09/24 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
详解Python中的正则表达式
2018/07/08 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
Python实现打印实心和空心菱形
2019/11/23 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
2014民事授权委托书范本
2014/09/29 职场文书
销售经理工作检讨书
2015/02/19 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
导游词之塘栖古镇
2019/12/04 职场文书
python opencv旋转图片的使用方法
2021/06/04 Python