【发布时间】:2017-02-14 02:30:44
【问题描述】:
我正在尝试使用 Matplotlib 从 Python 中的 Pandas 数据框生成图。这是数据框的摘要。
import pandas as pd
import datetime
import matplotlib.pyplot as plt
# Summarize data frame.
>>> df.shape
(40, 4)
>>> df.dtypes
ID object
relative_time timedelta64[ns]
value float64
relative_value float64
dtype: object
>>> df.head()
ID relative_time value relative_value
0 001 -1 days +18:08:04 4.5 -1.0
1 001 -1 days +18:18:03 4.5 -1.0
2 001 -1 days +18:28:03 4.5 -1.0
3 001 -1 days +18:38:04 4.5 -1.0
4 001 -1 days +18:48:03 4.5 -1.0
>>> df.tail()
ID relative_time value relative_value
35 001 -1 days +23:58:03 5.5 0.0
36 001 00:08:03 5.5 0.0
37 001 00:18:03 5.5 0.0
38 001 00:28:02 5.5 0.0
39 001 00:38:04 5.5 0.0
我试图在 x 轴上绘制 relative_time,在 y 轴上绘制 relative_value。然而,下面的代码产生了一个意想不到的结果,我无法判断 x 轴的单位是什么。
# Plot the desired plot.
plt.plot(test['relative_time'], test['relative_value'], marker='.')
请注意,上图中的 x 轴不是以小时为单位(相对于时间 0)。这样的情节如下所示。
plt.plot(test['relative_time'] / np.timedelta64(1, 'h'), test['relative_value'], marker='.')
如何绘制 x 轴,以便它以与 relative_time 列相同的格式显示时间?例如,如果 x 轴每小时都有刻度线,它们将被标记为 -1 days +18:00:00、-1 days +19:00:00、...、00:00:00 和 01:00:00。
【问题讨论】:
标签: python pandas matplotlib