Python讀取Excel數(shù)據(jù)并生成圖表過程解析
一、需求背景
自己一直在做一個周基金定投模擬,每周需要添加一行數(shù)據(jù),并生成圖表。以前一直是用Excel實現(xiàn)的。但數(shù)據(jù)行多后,圖表大小調(diào)整總是不太方便,一般只能通過縮放比例解決。
二、需求實現(xiàn)目標(biāo)
通過Python程序讀取Excel文件中的數(shù)據(jù),生成圖表,最好將生成圖表生成至瀏覽器頁面,后期數(shù)據(jù)多之后,也能自動縮放,而不會出現(xiàn)顯示不全問題。
三、需求實現(xiàn)代碼
# 調(diào)用本地echarts.min.js 文件
from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST ='D:\\develop_study\\Python38\\pyecharts\\'
from pyecharts.charts import Line # 數(shù)據(jù)可視化折線圖
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'當(dāng)前已定投周數(shù):{table.nrows}-1') # 獲取行數(shù)
print(f'當(dāng)前總計列數(shù):{table.ncols}') # 獲取列數(shù)
# print(table.row_values(0)) # 獲取行數(shù)據(jù)
dt_dates = [] # 日期
dt_hs300s =[] # 滬深300
dt_zz500s =[] # 中證500
dt_nz100s =[] # 納指100
dt_bp500s =[] # 標(biāo)普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('標(biāo)普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='最小值')
]
)
)
# 設(shè)置標(biāo)題等
line.set_global_opts(title_opts=opts.TitleOpts('跟蹤指數(shù)周變化曲線'),
# 顯示工具箱
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')
- 添加標(biāo)題
- x軸刻度全部顯示
- 設(shè)置各對象最大值、最小值、平均值
- 設(shè)置圖表大小
四、需求實現(xiàn)效果

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python數(shù)據(jù)可視化之使用matplotlib繪制簡單圖表
- Python數(shù)據(jù)可視化之基于pyecharts實現(xiàn)的地理圖表的繪制
- Python讀取多列數(shù)據(jù)以及用matplotlib制作圖表方法實例
- Python數(shù)據(jù)可視化 pyecharts實現(xiàn)各種統(tǒng)計圖表過程詳解
- python實現(xiàn)字符串加密 生成唯一固定長度字符串
- python實現(xiàn)對指定字符串補(bǔ)足固定長度倍數(shù)截斷輸出的方法
- python 按照固定長度分割字符串的方法小結(jié)
- Python?實操顯示數(shù)據(jù)圖表并固定時間長度
相關(guān)文章
python 定義函數(shù) 返回值只取其中一個的實現(xiàn)
這篇文章主要介紹了python 定義函數(shù) 返回值只取其中一個的實現(xiàn)操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05
Python SQLAlchemy基本操作和常用技巧(包含大量實例,非常好)
這篇文章主要介紹了Python的ORM框架SQLAlchemy基本操作和常用技巧,包含大量實例,非常好的一個學(xué)習(xí)SQLAlchemy的教程,需要的朋友可以參考下2014-05-05
基于PyQt5實現(xiàn)SqlServer數(shù)據(jù)庫表導(dǎo)出Excel表格小工具
這篇文章主要為大家詳細(xì)介紹了PyQt5的應(yīng)用案例之實現(xiàn)SqlServer數(shù)據(jù)庫表導(dǎo)出Excel表格小工具,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下2023-12-12
Python中關(guān)于面向?qū)ο笾欣^承的詳細(xì)講解
面向?qū)ο缶幊?(OOP) 語言的一個主要功能就是“繼承”。繼承是指這樣一種能力:它可以使用現(xiàn)有類的所有功能,并在無需重新編寫原來的類的情況下對這些功能進(jìn)行擴(kuò)展2021-10-10
python歐拉角和旋轉(zhuǎn)矩陣變換的實現(xiàn)示例
在計算機(jī)圖形學(xué)中,歐拉角和旋轉(zhuǎn)矩陣是描述物體旋轉(zhuǎn)的常用方法,本文主要介紹了python歐拉角和旋轉(zhuǎn)矩陣變換的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2024-03-03
python,Django實現(xiàn)的淘寶客登錄功能示例
這篇文章主要介紹了python,Django實現(xiàn)的淘寶客登錄功能,結(jié)合實例形式分析了Django框架基于淘寶接口的登錄功能相關(guān)操作技巧,需要的朋友可以參考下2019-06-06
python中讀取txt文件時split()函數(shù)的妙用
這篇文章主要介紹了python中讀取txt文件時split()函數(shù)的妙用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11

