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 as en los pares y los valores y de la segunda parcela son los bs 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!

Author: CodeKingPlusPlus, 2014-02-03

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á:

introduzca la descripción de la imagen aquí

Para descomprimir sus datos de pares en listas use zip:

x, y = zip(*li)

Por lo tanto, el one-liner:

plt.scatter(*zip(*li))
 105
Author: sashkello,
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)
 16
Author: Zweedeend,
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.

 2
Author: Shubham Rana,
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