如何在Matplotlib中使用5列作为日期?

时间:2019-07-18 18:15:58

标签: python datetime matplotlib

我有前6列作为日期的数据,最后一列是值:

2013 03 17 00 00 00.000000 -3.140000

2013 03 17 00 00 30.000000 -2.140000

数据点是每30秒一次。我想将0、1、2、3、5列用作x值时间,并将其与最后一列相对应。

omnibz = np.loadtxt('data')

bz_plt = plt.plot(omni[:,5],omnibz[:,6],linewidth=1.1)

我应该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这将起作用(但会降低小数秒):

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

d = np.array([[2013,3,17,0,0,0.000000,
-3.140000],[2016,3,17,0,0,30.000000,-2.140000]])
d_time = pd.to_datetime(((d[:,0:1]*10000000000)+(d[:,1:2]*100000000)+(d[:,2:3]*1000000)+(d[:,3:4]*10000)+(d[:,4:5]*100)+np.round(d[:,5:6])).squeeze().astype(int),format='%Y%m%d%H%M%S')
plt.plot(d_time,d[:,6:7])