我有一个使用DateTime索引的DataFrame,在直方图上显示了计数。每次计数为20秒 如何更改y轴以显示分钟,小时或天,而不是计数?
以下是我的DataFrame的前五行:
from pandas.lib import Timestamp
df = pd.DataFrame({'A': {Timestamp('2013-01-20 00:00:16.726000'): 0.14746094,
Timestamp('2013-01-20 00:00:36.726002'): 0.13964844,
Timestamp('2013-01-20 00:00:56.726004'): 0.13574219,
Timestamp('2013-01-20 00:01:16.725997'): 0.14355469,
Timestamp('2013-01-20 00:01:36.725999'): 0.14746094},
'B': {Timestamp('2013-01-20 00:00:16.726000'): 3.5716574,
Timestamp('2013-01-20 00:00:36.726002'): 3.5716574,
Timestamp('2013-01-20 00:00:56.726004'): 3.5716574,
Timestamp('2013-01-20 00:01:16.725997'): 3.5716574,
Timestamp('2013-01-20 00:01:36.725999'): 3.5716574}})
df.plot()
matplotlib v1.2.0 大熊猫0.10.1
凸块
答案 0 :(得分:1)
使用您的示例,df.plot不会显示直方图(即值的分布),而是显示按时间戳索引的值的演变曲线。
以下代码段显示的值的直方图不是'计数',而是间隔持续时间作为y轴权重(所有等于你指定的20秒,但它们可能因每个值而不同)。
import numpy as np
import matplotlib.pyplot as plt
df.hist(weights=np.repeat(20,5))
plt.ylabel('Cumulated intervals duration [sec]')