openpyxlで時系列グラフを描く際に、x軸の時刻を正しく、かつ縦向きで表示したい

実現したいこと

pythonのopenpyxlを用いて、excelファイルに時系列の表を出力させ、それを元に、時系列グラフを描こうと思っています。

ところが、下記の図のようにx軸に時刻が上手く表示されません。

1時間ごとに「6:00,7:00,8:00」と縦向き(図の状態から時計回りに90度回転させた状態)で表示させたいのですが、どのようにすれば良いでしょうか?

色々と不慣れなところがありますが、よろしくお願いします。

イメージ説明

import datetime import pandas as pd import openpyxl from openpyxl.chart import ScatterChart,Reference,Series time_list = [] for t in range(0,125,5): time_list = time_list+[(datetime.datetime(1,1,1,6,0)+datetime.timedelta(minutes=t)).time()] data_list = list(range(25)) graph_data = pd.concat([pd.DataFrame(time_list),pd.DataFrame(data_list)],axis=1) graph_data.to_excel("graph.xlsx",index=False) book = openpyxl.load_workbook("graph.xlsx") sheet = book["Sheet1"] chart = ScatterChart() x_values = Reference(sheet,min_col=1,min_row=2,max_row=len(graph_data)+1) y_values = Reference(sheet,min_col=2,min_row=2,max_row=len(graph_data)+1) series = Series(y_values,x_values) chart.series.append(series) chart.y_axis.majorGridlines = None chart.x_axis.majorGridlines = None chart.x_axis.numFmt = "h:mm" sheet.add_chart(chart) book.save("graph.xlsx")

補足情報(FW/ツールのバージョンなど)

Pythonのバージョンは3.7.7です。

コメントを投稿

0 コメント