python - 加载并绘图 %Y-%m-%d %H :%M:%S from a file

标签 python python-2.7 matplotlib time

我正在尝试通过加载具有两个日期和一个值的文件来使用“plot_date”制作一个简单的 XY 图,但尚未成功。这个想法是让第 0 列和第 1 列代表“time1”,第 2 列和第 3 列代表“time2”,第 4 列代表“val”。

数据输入数据如下所示:

2017-04-08 16:54:37 2017-04-08 16:55:08 1
2017-04-08 16:58:28 2017-04-08 16:58:33 1
2017-04-08 17:02:18 2017-04-08 17:02:24 1

代码

import matplotlib.pyplot as plt
from matplotlib.dates import strpdate2num
import numpy as np
import matplotlib.colors
import matplotlib.cm
from matplotlib.dates import date2num, DateFormatter
import datetime as dt

time1,time2,val = np.loadtxt(inputfile, usecols=(0,1,2,3,4), unpack=True, converters = {0,1: strpdate2num("%Y-%m-%d %H:%M:%S")})

这里我得到一个错误:

>>> time1,time2,val = np.loadtxt(inputfile, usecols=(0,1,2,3,4), unpack=True, converters = {0,1: strpdate2num("%Y-%m-%d %H:%M:%S")})
File "<stdin>", line 1
time1,time2,val = np.loadtxt(inputfile, usecols=(0,1,2,3,4), unpack=True, converters = {0,1: strpdate2num("%Y-%m-%d %H:%M:%S")})
                                                                                           ^
SyntaxError: invalid syntax

关于我可能做错了什么有什么想法吗?有关如何纠正的建议?

除此之外,我希望从 time1 中减去 time2 并得到以秒为单位的差值。这可能吗?

最后,我想绘制变量,大致如下:

fig, ax = plt.subplots()
ax.plot_date(time1, val, 'b-', color='b')
ax.plot_date(time2, val, 'b-', color='g')

最佳答案

您必须单独转换每一列,然后将其合并:

import matplotlib.pyplot as plt
from matplotlib.dates import strpdate2num
import numpy as np
import matplotlib.colors
import matplotlib.cm
from matplotlib.dates import date2num, DateFormatter
import datetime as dt

time1,date1,time2,date2,val = np.loadtxt(inputfile, usecols=(0,1,2,3,4),  unpack=True,
 converters = {0: strpdate2num("%Y-%m-%d"), 1: strpdate2num("%H:%M:%S"),
 2: strpdate2num("%Y-%m-%d"), 3: strpdate2num("%H:%M:%S")})

time1 += date1
time2 += date2

fig, ax = plt.subplots()
ax.plot_date(time1, val, 'b-', color='b')
ax.plot_date(time2, val, 'b-', color='g')
fig.autofmt_xdate()
plt.show()

关于python - 加载并绘图 %Y-%m-%d %H :%M:%S from a file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43303055/

相关文章:

python - GaussianMixture sklearn 开始先验

python - 如何在当前页面的 Pelican 站点顶部生成所有语言的链接(文章)

python - 尝试显示小部件时出现线程问题

Python 在 matplotlib 中设置 x 轴数据框的问题

python - 使用按钮更新 Matplotlib 中的注释

python - 用python动态创建MySQL表?

python - pycharm 中的 Jupyter notebook 不显示内联图

android - Buildozer 错误,CalledProcessError (Kivy)

python - 在实例化时自动调用 Python 类方法的最佳方法

python - 我需要使用 MatPlotLib 在 PyQt4 GUI 中绘制饼图