実現したいこと
グラフ X軸目盛の表示エリアを広げたい
前提
pythonで下記のプログラムを実行させると、グラフが表示されるのですが
X軸の時間がyyyy/mm/dd hh:mm 全てが表示されない
表示エリアを広げたいのですが、いろいろと検索してみたのですが見つけることができませんでした。
分かる方がいれば教えてください。
又、この辺の解説があるサイトがあれば教えてください。
該当のソースコード
python
1@app.route('/graph_ktemp') 2def graph_ktemp(): 3 plt.cla() 4 fig = plt.figure(figsize=(6, 5), dpi=72, facecolor='skyblue', linewidth=10, edgecolor='green') 5 ax = fig.add_subplot() 6 x_data = [] 7 y_data = [] 8 tblSAD = tableSDA.query.filter(tableSDA.KYMD.between('2022/01/01 00:00:00', '2022/01/08 00:00:00')).all() 9 for row in tblSAD: 10 print(row.KYMD, row.ktemp) 11 x_data.append(dt.strptime(row.KYMD, '%Y/%m/%d %H:%M:%S')) 12 y_data.append(row.ktemp) 13 ax.plot(x_data, y_data) 14 15 xmin = datetime.datetime.strptime("2022/01/01 00:00:00", '%Y/%m/%d %H:%M:%S') 16 xmax = datetime.datetime.strptime("2022/01/08 00:00:00", '%Y/%m/%d %H:%M:%S') 17 ax.set_xlim(xmin,xmax) 18 ax.xaxis.set_major_locator(mdates.HourLocator(byhour=range(0, 24, 12), tz=None)) # 12時間毎に表示 19 ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y/%m/%d %H:%M')) 20 ax.set_position([0.1, 0.22, 0.8, 0.68]) 21 labels = ax.get_xticklabels() 22 plt.setp(labels, rotation=90, fontsize=10); 23 ax.grid() 24 25 canvas = FigureCanvasAgg(fig) 26 png_output = BytesIO() 27 canvas.print_png(png_output) 28 data = png_output.getvalue() 29 30 response = make_response(data) 31 response.headers['Content-Type'] = 'image/png' 32 return response 33
ax.grid() の直後に plt.tight_layout() を追加してみるとどうなりますでしょうか?

回答1件
あなたの回答
tips
プレビュー