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

Max*_*Max 7 python plot matplotlib

嗨,我发现了同样的问题,但没有答案: 在这里输入链接说明

我的问题是我尝试使用matplotlib绘制数据,并连接第一个和最后一个数据点.我正在使用python27和Windows 7.我的问​​题只是要显示完整,所以我只显示源代码的一些部分.绘图功能如下:

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()
Run Code Online (Sandbox Code Playgroud)

我正在使用它,因为我在Tkinter Gui中绘制这个并且想要有时刷新它.情节如下: 在此输入图像描述

我的价值观是:

t = [161000, 161015...., 191115]
aw = [0.618,......, 0.532]
temperature = [23.7,....,24.4]
Run Code Online (Sandbox Code Playgroud)

这是一个问题,我不是从t数组中的零开始?

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

干杯最大

Geo*_*tob 6

Pyplot 将第一个 (x,y) 点与第二个 (x,y) 点、第三个点等等连接起来......所以看起来可能有一个(重复?)低值隐藏在你的末尾x

您可以尝试x == sorted(x)仔细检查您的列表是否严格升序。False如果不是,它会返回。

在调用函数之前,您可能需要找到 (x,y) 对plot()


小智 2

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

因此,绘图通常会在绘图窗口中间的某个位置开始,并具有良好的增量时间。然后它到达插入点并及时跳回到窗口的开头——画一条难看的线——然后恢复到起点。

快速的解决方案是替换这一行:

plot(pTime, pPos)
Run Code Online (Sandbox Code Playgroud)

用两条线按正确的顺序绘制每一半:

plot(pTime[ptr:], pPos[ptr:])
plot(pTime[0:ptr], pPos[0:ptr])
Run Code Online (Sandbox Code Playgroud)