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 02 Python
python批量读取txt文件为DataFrame的方法
Apr 03 Python
python3 对list中每个元素进行处理的方法
Jun 29 Python
Python实现基于PIL和tesseract的验证码识别功能示例
Jul 11 Python
python 2.7 检测一个网页是否能正常访问的方法
Dec 26 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
用Python写一个自动木马程序
Sep 17 Python
Python文本处理简单易懂方法解析
Dec 19 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
jupyter notebook清除输出方式
Apr 10 Python
python3爬虫中异步协程的用法
Jul 10 Python
Python监听键盘和鼠标事件的示例代码
Nov 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
给ECShop添加最新评论
2015/01/07 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
2016/11/04 PHP
php连接mysql数据库
2017/03/21 PHP
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
如何使用Jquery获取Form表单中被选中的radio值
2013/08/09 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
Bootstrap选项卡动态切换效果
2016/11/28 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
用Python实现换行符转换的脚本的教程
2015/04/16 Python
python解决字符串倒序输出的问题
2018/06/25 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
ipad上运行python的方法步骤
2019/10/12 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
Python读写Excel表格的方法
2021/03/02 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
医学专业毕业生个人求职信
2013/12/25 职场文书
信息员培训方案
2014/06/12 职场文书
共产党员批评与自我批评
2014/10/15 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
七年级上册生物的课件
2019/08/07 职场文书
python实现ROA算子边缘检测算法
2021/04/05 Python
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS
Go归并排序算法的实现方法
2022/04/06 Golang