首页 > 解决方案 > 如何在 matplotlib 中使用 5 列作为日期?

问题描述

我有前 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)

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

标签: pythondatetimematplotlib

解决方案


这将起作用(但会丢失小数秒):

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

推荐阅读