使用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()