python27 matplotlib: primer y último elemento conectado

Hola, encontré el mismo problema pero sin respuesta: ingrese la descripción del enlace aquí

Mi problema es que trato de trazar datos con matplotlib y se conecta el primer y el último punto de datos. Estoy usando python27 y Windows 7. Mi problema es demasiado grande para mostrarlo completo, así que solo muestro algunas partes del código fuente. La función de trazado es la siguiente:

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

Estoy usando esto, porque estoy trazando esto en un Tkinter Gui y quiero actualizarlo a veces. La ttwig se parece a: introduzca la descripción de la imagen aquí

Mis valores son:

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

¿Es un problema que no comience con cero en la matriz t?

Si alguien tiene una pista o sabe el problema, por favor, ayúdame.

Saludos Max

¡Buena pregunta! Tuvo un problema similar al trazar los datos de fecha y hora de un búfer circular. Las otras respuestas explicaron lo que estaba pasando.

La gráfica procesa los vectores en orden estricto, dibujando una línea desde la primera coordenada a la segunda y así sucesivamente. Pero un búfer circular puede comenzar con el tiempo más bajo en cualquier punto.

Por lo tanto, la gráfica a menudo comenzará en algún lugar en medio de la ventana de la gráfica con un buen tiempo de incremento. Luego llega al punto de inserción y retrocede en el tiempo hasta el inicio de la ventana, dibujando una línea fea, y luego vuelve al punto de inicio.

La solución rápida fue reemplazar esta línea:

 plot(pTime, pPos) 

con dos líneas trazando cada mitad en el orden correcto:

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

Pyplot está conectando el primer punto (x, y) con el segundo (x, y), con el tercero y así sucesivamente … por lo que parece que puede haber un valor bajo (¿duplicado?) Oculto hacia el final de tu x .

Puede probar x == sorted(x) para verificar si su lista es estrictamente ascendente. Devolverá False si no lo es.

Es probable que desees encontrar el par (x, y) antes de llamar a tu función plot() , así que te lo dejo a ti por ahora.

Yo tuve el mismo problema. La solución que encontré estaba en el archivo .txt donde se almacenaban mis datos. El conjunto de datos existía dos veces en el archivo y, por lo tanto, causaba la conexión de inicio y punto final por matplotlib.

Eliminando datos dobles y graficando correctamente la gráfica. Afortunadamente, los dos conjuntos de datos aparecieron uno tras otro. Así que fue fácil borrar la primera parte.

Dado que en mi caso era una gran recostackción de datos, esto no era obvio y, por lo tanto, tomó algún tiempo darse cuenta.

El problema fue causado al crear el archivo txt ….

Así que todo correcto con matplotlib.

Saludos, Rick

Acabo de tener el mismo problema.

En mi caso estuve lidiando con los 365 días del año. La indexación comienza desde 0 y finaliza en 365, mientras que los números del día comienzan desde 1 y finalizan en 366, por lo que la fecha correspondiente a la línea 366 era 1 y es por eso que había una línea que conecta el final de la ttwig al comienzo. También necesitaba verificar los años bisiestos porque los datos se recostackron en un período de 10 años.

Tuve un problema similar como se puede ver:

ANTES DE introduzca la descripción de la imagen aquí

Acabo de ordenar x usando esto:

 x = sorted(x) 

Y la línea desapareció, como se puede ver: (Pero los datos están alterados debido a la clasificación).

Después de la clasificación introduzca la descripción de la imagen aquí

También debe asegurarse de que los respectivos valores de y también deben organizarse en consecuencia para la ordenada x . La salida final está aquí:

FIJO introduzca la descripción de la imagen aquí