格式化用熊猫绘制时间序列的日期时间

时间:2016-09-20 09:50:54

标签: python pandas matplotlib dataframe

我正在用熊猫数据框绘制一些时间序列,我在周末遇到了差距问题。如何消除时间序列图中的差距?

date_concat = pd.to_datetime(pd.Series(df.index),infer_datetime_format=True)
pca_factors.index = date_concat
pca_colnames = ['Outright', 'Curve', 'Convexity']
pca_factors.columns = pca_colnames

fig,axes = plt.subplots(2)
pca_factors.Curve.plot(ax=axes[0]); axes[0].set_title('Curve')
pca_factors.Convexity.plot(ax=axes[1]); axes[1].set_title('Convexity'); plt.axhline(linewidth=2, color = 'g')
fig.tight_layout()
fig.savefig('convexity.png')

以下部分情节: enter image description here

理想情况下,我希望时间序列只显示工作日而忽略周末。

1 个答案:

答案 0 :(得分:1)

使MaxU的建议更明确:

  • 按照您的方式转换为日期时间,但放弃周末
  • 重置索引并通过此默认Int64Index
  • 绘制数据
  • 更改x刻度标签

代码:

date_concat = data_concat[date_concat.weekday < 5] # drop weekends
pca_factors = pca_factors.reset_index() # from MaxU's comment
pca_factors['Convexity'].plot()         # ^^^
plt.xticks(pca_factors.index, date_concat) # change the x tick labels