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 10 Python
Python入门之三角函数sin()函数实例详解
Nov 08 Python
用python实现百度翻译的示例代码
Mar 09 Python
利用Python如何批量更新服务器文件
Jul 29 Python
python实现在cmd窗口显示彩色文字
Jun 24 Python
python设置环境变量的原因和方法
Jun 24 Python
Python的垃圾回收机制详解
Aug 28 Python
python区分不同数据类型的方法
Oct 14 Python
使用python模拟高斯分布例子
Dec 09 Python
python yield和Generator函数用法详解
Feb 10 Python
Python模拟FTP文件服务器的操作方法
Feb 18 Python
Python实现简单的猜单词
Jun 15 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 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
jQuery 隔行换色 支持键盘上下键,按Enter选定值
2009/08/02 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
nodejs实现日志读取、日志查找及日志刷新的方法分析
2019/05/20 NodeJs
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
Python实现LRU算法的2种方法
2015/06/24 Python
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
不要用强制方法杀掉python线程
2017/02/26 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
Python实现的质因式分解算法示例
2018/05/03 Python
python 读取DICOM头文件的实例
2018/05/07 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
类、抽象类、接口的差异
2016/06/13 面试题
师范生实习自我鉴定
2013/11/01 职场文书
生物技术研究生自荐信
2013/11/12 职场文书
物业电工岗位职责
2013/11/20 职场文书
党员违纪检讨书
2014/02/18 职场文书
优秀护士先进事迹
2014/05/08 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
2014年班长个人工作总结
2014/11/14 职场文书
初中学生操行评语
2014/12/26 职场文书
同意报考公务员证明
2015/06/17 职场文书
教师网络培训心得体会
2016/01/09 职场文书
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server