【Pythonメモ】時間軸の間隔調整
やりたいこと
datetime
型の軸の間隔を、調整したい
とびとびになっているこの図を
こんな感じで任意の間隔に設定する
参考サイト
コード
import numpy as np import matplotlib.pyplot as plt from matplotlib.dates import date2num from matplotlib.dates import DateFormatter from matplotlib import ticker from datetime import datetime as dtdt import datetime as dt import pandas as pd from dateutil.relativedelta import relativedelta (略) # グラフ作成 fig = plt.figure(figsize = (12, 8)) ax = fig.add_subplot(1, 1, 1) ax.plot(date2num(SFE_DataFrame.index), SFE_DataFrame.values) ax.set_xlim(date2num([SFE_DataFrame.index.min(), SFE_DataFrame.index.max()])) ax.xaxis.set_major_formatter(DateFormatter('%Y-%m')) new_x_scale = date2num([dtdt(2007,6,8) + relativedelta(months = 6 * i) for i in range(26)]) ax.xaxis.set_major_locator(ticker.FixedLocator(new_x_scale)) ax.tick_params(axis='x', rotation = 315) ax.set_yscale('log') (y軸設定らへんは略) ax.grid(which = 'both', color = 'black', lw = 0.2) fig.savefig('output/testSFE.png')
日付に関しては、エクセルのシリアル値みたいに内部では数字で管理しているのかなあと思った
詳しいことはわからんけど!!
new_x_scale = date2num([dtdt(2007,6,8) + relativedelta(months = 6 * i) for i in range(26)])
上の部分がなんか汚いなあって感じ