我有一个pandas Series,以整数运行时间作为索引,其中的时间不是从午夜开始,而是随机开始(下面的例子中为8)。
hour = range(8, 24) + range(0, 8)
values = pd.Series(range(24), index=hour)
我希望绘制一个24小时的值图,但我希望x轴显示“原始”小时值,而不是重新排列索引。
ax = values.plot()
ax.axis([0, 23, 0, 23])
有什么建议吗?
我有一个pandas Series,以整数运行时间作为索引,其中的时间不是从午夜开始,而是随机开始(下面的例子中为8)。
hour = range(8, 24) + range(0, 8)
values = pd.Series(range(24), index=hour)
我希望绘制一个24小时的值图,但我希望x轴显示“原始”小时值,而不是重新排列索引。
ax = values.plot()
ax.axis([0, 23, 0, 23])
有什么建议吗?
2条答案
按热度按时间u0sqgete1#
一种选择是(正如您在评论中所说的)使用非数字索引。
由于这将自动选择一些标签,并且无法控制它们,因此它可能不是最佳的。
一个更好的解决方案可能是使用不同的索引,即一个数字和连续增加(在这种情况下从8到31),然后修改ticklabels作为模24。
这也将允许将位置设置为某个数字的倍数(例如6),这对于一天中的几个小时是有意义的。
最后,您当然可以选择使用真实的日期时间。
v440hwme2#
将
use_index
设置为False
,如下所示:参见:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.html