【问题标题】:How to plot unix timestam如何绘制 unix 时间戳
【发布时间】:2021-11-23 04:04:16
【问题描述】:

我有一个由 sec.nsec(unix 时间?)确定的时间序列,其中信号为 0 或 1,我想将其绘制成方形信号。目前我有以下代码:

from matplotlib.pyplot import *

time = ['1633093403.754783918', '1633093403.755350983', '1633093403.760918965', '1633093403.761298577', '1633093403.761340378', '1633093403.761907443']
data = [1, 0, 1, 0, 1, 0] 

plot(time, data)
show()

这情节:

在绘制之前是否需要进行任何转换?我不能有日期:时间,因为这些点之间可能有 ns 到 ms

谢谢。

编辑:时间列表的值是字符串

【问题讨论】:

  • 添加 drawstyle='steps-pre' 到绘图工作。但是,这是绘制它的正确方法吗?
  • date = np.datetime64(time, 's') 应该为您提供 numpy datetime64 数组,而 Matplotlib 应该为您提供更好看的刻度。如果您不关心日期,那么您也可以只减去一天或小时之类的开始。
  • 问题是我不是从 python 脚本中获取时间,而是从文件中获取时间。但是,只是为了测试您的建议,我尝试了date = np.datetime64(time[0], 's'),但这会引发错误Could not convert object to NumPy datetime。尽管如此,使用drawstyle='steps-pre' 仍然有效
  • 对不起,您需要先转换为 int 才能传递给 datetime64。所以也许:date = np.datetime64(int(1e6*time[0]), 'us')
  • 我刚刚编辑了这个问题。列表 time 由字符串 (sec.nsec) 组成。我在想的是我应该将 sec 和 nsec 分别转换为 int,然后将 sec 转换为 nsec 并将这两个数字一起转换....

标签: numpy matplotlib timestamp unix-timestamp datetime64


【解决方案1】:

要将 unix 时间戳字符串转换为 datetime64,您需要先转换为 float,然后使用正确的单位转换为 datetime64:

time = ['1633093403.754783918', '1633093403.755350983', '1633093403.760918965', '1633093403.761298577', '1633093403.761340378', '1633093403.761907443']
time = (np.asarray(time).astype(float)).astype('datetime64[s]')
print(time.dtype)
print(time)

产量:

datetime64[s]
['2021-10-01T13:03:23' '2021-10-01T13:03:23' '2021-10-01T13:03:23'

请注意,纳秒已被删除。如果你想保留那些...

time = (np.asarray(time).astype(float)*1e9).astype('datetime64[ns]')

产量:

datetime64[ns]
['2021-10-01T13:03:23.754783744' '2021-10-01T13:03:23.755351040'
 '2021-10-01T13:03:23.760918784' '2021-10-01T13:03:23.761298688'
 '2021-10-01T13:03:23.761340416' '2021-10-01T13:03:23.761907456']

这一切都有效,因为 datetime64 与 unix 时间戳 (1970-01-01T00:00:00.000000) 具有相同的“纪元”或零

完成此转换后,绘图应该可以正常工作。

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 2017-06-12
    • 2010-11-15
    • 2018-07-17
    • 1970-01-01
    • 2013-03-23
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多