Python讀取Excel資料並生成圖表過程解析
阿新 • • 發佈:2020-06-18
一、需求背景
自己一直在做一個周基金定投模擬,每週需要新增一行資料,並生成圖表。以前一直是用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軸刻度全部顯示
- 設定各物件最大值、最小值、平均值
- 設定圖表大小
四、需求實現效果
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。