Matplotlib plt.plot con enumerar no funciona

import numpy as np import matplotlib.pyplot as plt array = np.array([[1,2,3,4,5,6],[10,20,30,40,50,60],[3,4,5,6,7,8],[100,200,300,400,500,600]]) def plot(list): fig = plt.figure() ax = fig.add_subplot(111) for a,i in enumerate(list.T): ax.scatter(i[0],i[1],c='red') # This is plotted ax.plot(i[2],i[3],'g--') # THIS IS NOT BEING PLOTTED !!!! fig.show() plot(array) 

Ahora, necesito llamar a plot varias veces usando diferentes listas de array . Así que mi bucle for no puede ser eliminado. ¿Hay alguna otra manera de trazar una línea de puntos aparte de llamar a plt.plot en plt.plot lugar?

Esta es la ttwig que obtengo:

introduzca la descripción de la imagen aquí

Como puede ver, no estoy obteniendo el plt.plot(i[2],i[3],'g--') . Por qué esto es tan ?

Pero cuando imprimes los valores usando el mismo bucle for:

 In [21]: for a,i in enumerate(array.T): ...: print i[2],i[3] ...: 3 100 4 200 5 300 6 400 7 500 8 600 

Los valores están perfectamente impresos. Sin embargo, no se trazan.

Retire el bucle for:

 ax.scatter(array[0],array[1],c='red') ax.plot(array[0],array[1],'g--') 

El problema con su código es que usted itera sobre filas, lo cual está bien para trazar puntos individuales ( ax.scatter ), pero no para conectar puntos simples ( ax.plot con opción '--' ): en cada fila solo traza el línea entre ese punto y sí mismo, que obviamente no se muestra en el gráfico.