Hi I have found the same problem but without an answer:
enter link description here
My problem is that I try to plot data with the matplotlib and it connects the first and the last data point. I am using python27 and Windows 7. My problem is just to big to show complete so I just show some parts of the source code. The plot function is as below:
def plot(x, aw,temperature):
temperatureplot = plt.subplot(211)
awplot = plt.subplot(212)
awplot.set_ylabel('water activity aw')
awplot.margins(y=0.05) #adds a gap between maximum value and edge of diagram
temperatureplot.set_ylabel('Temperature in degree C')
awplot.set_xlabel('Time in [hm]')
t = [161000, 161015...., 191115]
aw = [0.618,......, 0.532]
temperature = [23.7,....,24.4]
Good question! Had a similar problem while plotting time stamped data from a circular buffer. The other answers explained what was going on.
The plot is processing the vectors in strict order, drawing a line from first coordinate to second and so on. But a circular buffer can start with lowest time at any point.
Thus the plot will often start somewhere in the middle of the plot window with nice incrementing time. Then it reaches the insertion point and jumps back in time to the start of the window -- drawing an ugly line -- then resuming up to the starting point.
The quick solution was replacing this line:
with two lines plotting each half in the right order:
plot(pTime[ptr:], pPos[ptr:]) plot(pTime[0:ptr], pPos[0:ptr])