【问题标题】:How to use 5 columns as date in matplotlib?如何在 matplotlib 中使用 5 列作为日期?
【发布时间】:2019-07-18 18:15:58
【问题描述】:

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

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

【问题讨论】:

  • 每列的数据类型是什么?
  • 0,1,2,3,5 是 5 列,而不是标题中的 4 列。
  • 是ASCII文件

标签: python datetime matplotlib


【解决方案1】:

这将起作用(但会减少小数秒):

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

【讨论】:

    猜你喜欢
    • 2019-09-15
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 2019-06-14
    • 2021-09-20
    相关资源
    最近更新 更多