Tengo una lista de pares con los (a, b)
que me gustaría trazar matplotlib
en Python como coordenadas xy reales. Actualmente, está haciendo dos gráficos, donde el índice de la lista da la coordenada x, y los valores de y del primer gráfico son los a
s en los pares y los valores de y del segundo gráfico son los b
s en los pares.
Para aclarar, mis datos se ven así: li = [(a,b), (c,d), ... , (t, u)]
quiero hacer una sola línea que simplemente llame plt.plot()
incorrectamente. Si no necesitara un one-liner, podría hacer trivialmente:
xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot(xs, ys)
¿Cómo puedo hacer que matplotlib represente estos pares como coordenadas xy?
python
matplotlib
plot
coordinates
CodeKingPlusPlus
fuente
fuente
plt.scatter( * xy.T )
funciona: corto y oscuro parax, y = xy.T; plt.scatter( x, y )
x, y = zip(*li)
¡Es un código Python realmente elegante! He estado haciendo las dos líneas de código más sencillas con una compresión de lista en cada línea (como la pregunta original)plt.scatter
tiene que ver el ejemplo aleatorio con la pregunta.Si tiene una matriz numpy, puede hacer esto:
fuente
np.array
dedata=np.array([[x1,y1],[x2,y2],etc.])
y el usoplt.plot(data)
. ¿Siempre tendré que dar dos matrices en lugar de matrices de matrices?plt.plot(*data.T)
que hace lo mismo que el anterior pero omite el paso intermedio.Si desea trazar una sola línea que conecte todos los puntos de la lista
Esto trazará una línea que conectará todos los pares de la lista como puntos en un plano cartesiano desde el inicio de la lista hasta el final. Espero que esto sea lo que querías.
fuente
scatter()
.