Python讀取Excel數(shù)據(jù)并生成圖表過(guò)程解析
一、需求背景
自己一直在做一個(gè)周基金定投模擬,每周需要添加一行數(shù)據(jù),并生成圖表。以前一直是用Excel實(shí)現(xiàn)的。但數(shù)據(jù)行多后,圖表大小調(diào)整總是不太方便,一般只能通過(guò)縮放比例解決。
二、需求實(shí)現(xiàn)目標(biāo)
通過(guò)Python程序讀取Excel文件中的數(shù)據(jù),生成圖表,最好將生成圖表生成至瀏覽器頁(yè)面,后期數(shù)據(jù)多之后,也能自動(dòng)縮放,而不會(huì)出現(xiàn)顯示不全問(wèn)題。
三、需求實(shí)現(xiàn)代碼
# 調(diào)用本地echarts.min.js 文件from pyecharts.globals import CurrentConfigCurrentConfig.ONLINE_HOST =’D:develop_studyPython38pyecharts’ from pyecharts.charts import Line # 數(shù)據(jù)可視化折線(xiàn)圖import pyecharts.options as optsimport xlrd # 讀取excel文件import webbrowser # 用于自動(dòng)打開(kāi)生成的HTML文件# 打開(kāi)exceldata = xlrd.open_workbook(’E:知識(shí)點(diǎn)滴積累蝸牛定投價(jià)格曲線(xiàn)_python.xlsx’) # 打開(kāi)excel工作簿table = data.sheet_by_index(1) # 打開(kāi)第一個(gè)頁(yè)簽print(f’當(dāng)前已定投周數(shù):{table.nrows}-1’) # 獲取行數(shù)print(f’當(dāng)前總計(jì)列數(shù):{table.ncols}’) # 獲取列數(shù)# print(table.row_values(0)) # 獲取行數(shù)據(jù)dt_dates = [] # 日期dt_hs300s =[] # 滬深300dt_zz500s =[] # 中證500dt_nz100s =[] # 納指100dt_bp500s =[] # 標(biāo)普500for 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)# 折線(xiàn)圖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)# 所有折線(xiàn)圖顯示平均值、最大值、最小值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ù)周變化曲線(xiàn)’), # 顯示工具箱 toolbox_opts=opts.ToolboxOpts(), xaxis_opts=opts.AxisOpts(axislabel_opts={'rotate':45,'interval':0}) ) # interval:0 橫軸信息全部顯示 # rotate:45 45度傾斜顯示 line.render(’價(jià)格曲線(xiàn)可視化3.html’)webbrowser.open(’價(jià)格曲線(xiàn)可視化3.html’) 添加標(biāo)題 x軸刻度全部顯示 設(shè)置各對(duì)象最大值、最小值、平均值 設(shè)置圖表大小
四、需求實(shí)現(xiàn)效果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 編程語(yǔ)言PHP在Web開(kāi)發(fā)領(lǐng)域的優(yōu)勢(shì)在哪?2. 什么是python的自省3. Android如何加載Base64編碼格式圖片4. 詳解Android studio 動(dòng)態(tài)fragment的用法5. 基于android studio的layout的xml文件的創(chuàng)建方式6. 解決Android studio xml界面無(wú)法預(yù)覽問(wèn)題7. Vuex localStorage的具體使用8. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁(yè)效果(實(shí)例代碼)9. 圖文詳解vue中proto文件的函數(shù)調(diào)用10. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟

網(wǎng)公網(wǎng)安備