0
私は時間軸がインデックスとして設定されたパンダのデータフレームを持っています。次のコードをプロットするときseaborn/matplotlibのx軸を時間軸で正しく配置する方法は?
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns; sns.set();
ids = [1,2,3,4]
dates = pd.date_range('20150704', '20160331')
vals = np.random.randn(len(ids)*len(dates))
allids = np.tile(ids, len(dates))
alldates = np.tile(dates, len(ids))
df = (pd.DataFrame(np.vstack((allids, vals)).T, index=alldates)
.reset_index().rename(columns={'index':'datetime',0:'unique_id',1:'height'}))
time_group = '1w'
threshold = 0.50
fig, axes = plt.subplots(nrows=4, ncols=1, figsize=(12, 16), sharex=True)
for (i, temp), ax in zip(df.groupby('unique_id'), axes.ravel()):
(temp.set_index('datetime').height
.groupby(pd.TimeGrouper(time_group))
.mean()
.plot(ax=ax))
プロットは4つのプロットがあります。
例えば、11月は12月よりも広くなっているか、注意してください(そう、それは単に、各月の日数ではありません):x軸上の縦線の間隔は次のようになります。明らかに、これは、毎月のデータポイントの数ではなく、各月のデータポイントの数によるものです。垂直線を月の始まり/終わりと時間的に適切に間隔を置くようにするための提案はありますか?これはバグですか?