以下是两个清单:
x = [736297.48567129625, 736297.53253472224, 736297.57858796301, 736297.50894675928, 736297.55557870376]
y = [-757, -706, 385, -247, 126]
这是我的代码:
import matplotlib.pyplot as plt
import matplotlib.dates as mdate
x = [736297.48567129625, 736297.53253472224, 736297.57858796301, 736297.50894675928, 736297.55557870376]
y = [-757, -706, 385, -247, 126]
plt.figure()
plt.plot_date(x, y, fmt='b-')
plt.grid(True)
plt.show()
x列表值使用mdate.epoch2num(epoch)从纪元时间转换。
这是我得到的图表,显然没有按时间顺序绘制:
Matplotlib improperly plotted chart
加分问题:您可以看到x轴上的时间格式看起来很糟糕。知道如何以yy-mm-dd-hh-ss格式呈现它吗?
感谢所有python大师的帮助!
答案 0 :(得分:1)
pyplot只是按照您提供数据的顺序绘图。
事实证明,x
没有排序,所以情节有点“向后”。
然后,您应该对索引(及其相应的值)进行排序,以获得您想要的内容:
#Sort by date (x) and apply change to values (y)
xx, yy = zip(*sorted(zip(x, y)))
plt.plot_date(xx, yy, fmt='b-')
pltrdy
奖金问题: 看一下here的pyplot日期刻度格式。它可能很容易理解并做你想做的事。