python27 matplotlib:连接的第一个和最后一个元素

发布于 2021-01-29 17:02:34

我的问题是我尝试使用matplotlib绘制数据并将其连接到第一个和最后一个数据点。我正在使用python27和Windows7。我的问题只是显示完整,所以我只显示了部分源代码。绘图功能如下:

def plot(x, aw,temperature):
    plt.clf()
    temperatureplot = plt.subplot(211)
    awplot = plt.subplot(212)

    temperatureplot.grid()
    awplot.grid()

    #set subplots
    awplot.set_ylabel('water activity aw')
    awplot.plot(x,aw)
    awplot.margins(y=0.05) #adds a gap between maximum value and edge of diagram
    temperatureplot.set_ylabel('Temperature in degree C')
    temperatureplot.plot(x,temperature)
    temperatureplot.margins(y=0.05)

    awplot.set_xlabel('Time in [hm]')
    plt.gcf().canvas.draw()

我正在使用它,因为我将其绘制在Tkinter Gui中,并且有时要刷新它。情节看起来像:
在此处输入图片说明

我的价值观是:

t = [161000, 161015...., 191115]
aw = [0.618,......, 0.532]
temperature = [23.7,....,24.4]

我不在t数组中从零开始的问题吗?

如果有人有提示或知道问题,请帮助我。

欢呼最大

关注者
0
被浏览
216
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    好问题!从圆形缓冲区绘制时间戳数据时遇到了类似的问题。其他答案解释了发生了什么。

    该图按严格顺序处理矢量,在第一个坐标到第二个坐标之间画一条线,依此类推。但是循环缓冲区可以在任何时候以最短的时间开始。

    因此,绘图通常会以良好的递增时间在绘图窗口的中间某处开始。然后到达插入点并跳转 在时间窗口的开始-画一个丑陋的线-然后再恢复到起点。

    快速解决方案是替换此行:

    plot(pTime, pPos)
    

    有两条线以正确的顺序绘制了每一半:

    plot(pTime[ptr:], pPos[ptr:])
    plot(pTime[0:ptr], pPos[0:ptr])
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看