如何使用matplotlib对数据帧的每个实例进行虚拟化?

时间:2018-08-09 07:19:27

标签: python pandas matplotlib

我有一个24小时格式的时间序列数据,从纪元转换后为:

  time                     d
 0  2018-06-30 18:30:45  41000000000  
 1  2018-06-30 18:31:44  40000000000  
 2  2018-06-30 18:32:44  41000000000  
 3  2018-06-30 18:33:45  41000000000  
 4  2018-06-30 18:34:45  41000000000  
 5  2018-06-30 18:35:45  41000000000  
 6  2018-06-30 18:36:47  44000000000  
 7  2018-06-30 18:37:46  43000000000  
 8  2018-06-30 18:38:46  40000000000  
 9  2018-06-30 18:39:47  43000000000
10  2018-06-30 18:45:47  41000000000
11  2018-06-30 18:46:47  40000000000
12  2018-06-30 18:47:47  40000000000
13  2018-06-30 18:48:45  38000000000
14  2018-06-30 18:49:48  40000000000
15  2018-06-30 18:50:48  41000000000
16  2018-06-30 18:51:48  41000000000
17  2018-06-30 18:52:47  40000000000
18  2018-06-30 18:53:47  40000000000
19  2018-06-30 18:54:47  41000000000
20  2018-06-30 18:55:47  41000000000
21  2018-06-30 18:56:47  40000000000
22  2018-06-30 18:57:47  41000000000
23  2018-06-30 18:58:50  44000000000
24  2018-06-30 18:59:49  43000000000
25  2018-06-30 19:00:48  39000000000
26  2018-06-30 19:01:48  39000000000
27  2018-06-30 19:02:48  39000000000
28  2018-06-30 19:03:48  39000000000
29  2018-06-30 19:04:48  39000000000
..                  ...          ...
136 2018-06-30 20:52:04  43000000000
137 2018-06-30 20:53:04  43000000000
138 2018-06-30 20:54:04  43000000000
139 2018-06-30 20:55:01  40000000000
140 2018-06-30 20:56:04  43000000000
141 2018-06-30 20:57:04  39000000000
142 2018-06-30 20:58:04  40000000000
143 2018-06-30 20:59:04  40000000000
144 2018-06-30 21:00:04  40000000000
145 2018-06-30 21:01:04  41000000000
146 2018-06-30 21:02:04  40000000000
147 2018-06-30 21:03:05  41000000000
148 2018-06-30 21:04:05  41000000000
149 2018-06-30 21:05:05  41000000000
150 2018-06-30 21:06:05  41000000000
151 2018-06-30 21:07:05  41000000000
152 2018-06-30 21:08:05  41000000000
153 2018-06-30 21:09:05  41000000000
154 2018-06-30 21:10:05  41000000000
155 2018-06-30 21:11:04  40000000000
156 2018-06-30 21:12:04  39000000000
157 2018-06-30 21:13:04  39000000000
158 2018-06-30 21:14:03  39000000000
159 2018-06-30 21:15:06  42000000000
160 2018-07-01 18:30:48  39000000000
161 2018-07-01 18:31:48  39000000000
162 2018-07-01 18:32:48  40000000000
163 2018-07-01 18:33:49  41000000000
164 2018-07-01 18:34:48  40000000000
165 2018-07-01 18:35:48  40000000000

像这样,我有165行。

以散点图形式绘制它时,我使用了以下代码:

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import dates

df = pd.read_csv('Mlogi_ALL_sy_5.csv')

df['time']=pd.to_datetime(df['time'], unit='ns')

df.plot(x = 'time' , y = 'd', style = "." )

但是上面只给了我一个特定的间隔图。数据是从2018-06-30 18:30:452018-07-01 18:35:48,即24小时,但是在通过pandas数据框中的matplotlib绘制时,我得到了从2018-06-30 18:30:452018-06-30 21:21:45的图。

我附上绘图屏幕截图。

Improper plot

我如何才能获得散点图来显示完整的24小时数据,即所有165行都正确?

1 个答案:

答案 0 :(得分:0)

接收您提供的数据并伪造缺失的数据,我执行您的代码,这是输出:

enter image description here

这是您期望的吗? 代码:

df['time']=pd.to_datetime(df['time'], unit='ns')
df.plot(x = 'time' , y = 'duration', style = "." )

您代码中的d是df中的名称duration吗?