熊猫直方图 - y轴及时

时间:2013-01-29 03:20:30

标签: matplotlib pandas histogram

我有一个使用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

Histogram

凸块

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]')

histogram