Trazar una lista de coordenadas (x, y) en python matplotlib
Tengo una lista de pares (a, b)
que me gustaría trazar con matplotlib
en python como coordenadas x-y reales. Actualmente, está haciendo dos parcelas, donde el índice de la lista da la coordenada x, y los valores y de la primera parcela son los a
s en los pares y los valores y de la segunda parcela 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 solo llame plt.plot()
incorrectamente.
Si no requiriera una sola línea 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 conseguir que matplotlib trace estos pares como coordenadas x-y?
Gracias por toda la ayuda!
3 answers
Según este ejemplo :
import numpy as np
import matplotlib.pyplot as plt
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x, y)
plt.show()
Producirá:
Para descomprimir sus datos de pares en listas use zip
:
x, y = zip(*li)
Por lo tanto, el one-liner:
plt.scatter(*zip(*li))
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-03 03:49:06
Si tienes una matriz numpy puedes hacer esto:
import numpy as np
from matplotlib import pyplot as plt
data = np.array([
[1, 2],
[2, 3],
[3, 6],
])
x, y = data.T
plt.scatter(x,y)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-15 08:33:27
Si desea trazar una sola línea que conecte todos los puntos de la lista
plt . plot ( li [ : ] )
plt . show ( )
Esto trazará una línea que conecta 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.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-10 18:01:04