Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python2.7绘制程序在不同时间戳开始和结束的图形_Python_Matplotlib - Fatal编程技术网

使用python2.7绘制程序在不同时间戳开始和结束的图形

使用python2.7绘制程序在不同时间戳开始和结束的图形,python,matplotlib,Python,Matplotlib,我有一个在不同时间开始和结束的程序,我已经捕捉到了时间安排 示例: [('05:43:44', '05:43:51'), ('05:59:32', '05:59:39'), ('06:14:46', '06:41:03'), ('06:41:16', '06:42:57')] 对于元组中的实例,开始时间和结束时间是成对的,如下所示 { Example [(1st start time, 1st end time), (2nd start time, 2nd end time) ..and so

我有一个在不同时间开始和结束的程序,我已经捕捉到了时间安排

示例:

[('05:43:44', '05:43:51'), ('05:59:32', '05:59:39'), ('06:14:46', '06:41:03'), ('06:41:16', '06:42:57')]
对于元组中的实例,开始时间和结束时间是成对的,如下所示

{ Example [(1st start time, 1st end time), (2nd start time, 2nd end time) ..and so on }
我想为程序绘制开始时间、结束时间曲线和一个有意义的图表。请告诉我如何在Python2.7中进行绘图

我试图运行此操作,但获取值时出错

测试数据:
[('05:43:44','05:59:32','06:14:46','06:41:16'),('05:43:51','05:59:39','06:41:03','06:42:57')]

错误:

ValueErrorTraceback (most recent call last)
<ipython-input-84-713cb20ee252> in <module>()
1 import matplotlib.pyplot as plt
2 
----> 3 plt.scatter(*zip(*zipped_files))
4 plt.show()
ValueError: invalid literal for float(): 05:43:44
ValueErrorTraceback(最近一次调用上次)
在()
1将matplotlib.pyplot作为plt导入
2.
---->3 plt.分散(*压缩(*压缩的文件))
4 plt.show()
ValueError:浮点()的文本无效:05:43:44

看起来您希望生成最适合绘制开始时间和结束时间的曲线。可以使用matplotlib执行以下操作:

from matplotlib import pyplot as plt
l = EXAMPLE LIST
starts = list(i[0] for i in l)
ends = list(i[1] for i in l)
plt.plot(starts, ends, -b)
plt.show()

可以根据需要使用多边形拟合生成最佳拟合的直线/曲线。希望这至少能帮助您大致了解该做什么,即使这不是您想要的。

您需要使用该模块将数据转换为datetime对象。以下是您提供的数据的完整示例:

import matplotlib.pyplot as plt
import datetime

data = [('05:43:44', '05:59:32', '06:14:46', '06:41:16'),('05:43:51', '05:59:39', '06:41:03', '06:42:57')]

x = [i[0] for i in data]
y = [i[1] for i in data]

new_x = [datetime.datetime.strptime(i, "%H:%M:%S") for i in x]
new_y = [datetime.datetime.strptime(i, "%H:%M:%S") for i in y]

plt.plot(new_x,new_y)
plt.show()
这将生成以下图表:

可以使用以下命令更好地格式化x轴:

其中:


您看过吗?谢谢您的建议。我确实使用了matplotlib,但我面临着这样的问题。库无法分析时间戳值。我得到错误值error:float()的无效文本:05:43:44。所以我需要一种处理这些时间戳的方法来听取建议。我确实使用了matplotlib,但我面临着这样的问题。库无法分析时间戳值。我得到错误值error:float()的无效文本:05:43:44。所以我需要一种方法来处理这些时间戳。谢谢DavidG提供的详细信息。我正在使用您提供的代码示例。没问题。如果这回答了您的问题,请务必向上投票/接受,将问题标记为已解决
import matplotlib.pyplot as plt
import datetime

data = [('05:43:44', '05:59:32', '06:14:46', '06:41:16'),('05:43:51', '05:59:39', '06:41:03', '06:42:57')]

x = [i[0] for i in data]
y = [i[1] for i in data]

new_x = [datetime.datetime.strptime(i, "%H:%M:%S") for i in x]
new_y = [datetime.datetime.strptime(i, "%H:%M:%S") for i in y]

plt.plot(new_x,new_y)
plt.show()
fig, ax = plt.subplots()

ax.plot(new_x,new_y)    
fig.autofmt_xdate()

plt.show()