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程序语言快速上手教程
Jul 18 Python
python益智游戏计算汉诺塔问题示例
Mar 05 Python
利用python实现微信头像加红色数字功能
Mar 26 Python
简单实现Python爬取网络图片
Apr 01 Python
Python序列循环移位的3种方法推荐
Apr 09 Python
对pandas中Series的map函数详解
Jul 25 Python
Python模块 _winreg操作注册表
Feb 05 Python
Python requests.post方法中data与json参数区别详解
Apr 30 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
python实现PolynomialFeatures多项式的方法
Jan 06 Python
Python 的 f-string 可以连接字符串与数字的原因解析
Feb 20 Python
Python中的socket网络模块介绍
Jul 23 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修改NetBeans默认字体的大小
2013/07/02 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
Python 中 list 的各项操作技巧
2017/04/13 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
python自动化生成IOS的图标
2018/11/13 Python
python中 * 的用法详解
2019/07/10 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
基于Python正确读取资源文件
2020/09/14 Python
Python txt文件如何转换成字典
2020/11/03 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
美国最大的珠宝首饰网上商城:Jewelry.com
2016/07/22 全球购物
工程管理造价应届生求职信
2013/11/13 职场文书
个人应聘自我评价分享
2013/11/18 职场文书
竞职演讲稿范文
2014/01/11 职场文书
校本教研工作方案
2014/01/14 职场文书
《梅花魂》教学反思
2014/04/30 职场文书
后进生评语大全
2015/01/04 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
谁动了我的奶酪读书笔记
2015/06/30 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android