tengo una lista de pares (a, b)
que me gustaría tramar con matplotlib
en python como coordenadas xy 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 de y de la segunda gráfica son los b
s en las parejas.
Para aclarar, mis datos se ven así: li = [(a,b), (c,d), ... , (t, u)]
Quiero hacer una frase de una sola línea que solo llame plt.plot()
incorrecto. Si no necesitara 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 hacer que matplotlib trace estos pares como coordenadas xy?
Data de muestra
# sample data
li = list(zip(range(1, 14), range(14, 27)))
li → [(1, 14), (2, 15), (3, 16), (4, 17), (5, 18), (6, 19), (7, 20), (8, 21), (9, 22), (10, 23), (11, 24), (12, 25), (13, 26)]
Trama incorrecta
plt.plot(li)
plt.title('Incorrect Plot:\nEach index of the tuple plotted as separate lines')
Parcela deseada
- Esto produce la trama correcta, pero se utilizan muchas líneas de código para desempaquetar
li
. Necesito desempaquetar y trazar con una sola línea de código, no con múltiples listas de comprensión.
xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot(xs, ys)
plt.title('Correct Plot:\nBut uses to many lines to unpack li')
Esencialmente, esta es una pregunta sobre cómo descomprimir una lista de tuplas, que se aborda con Desempaquetar una lista/tupla de pares en dos listas/tuplas. Sin embargo, esa respuesta no muestra cómo desempaquetar el
zip
objeto en la API de trazado.–Trenton McKinney
26 de julio a las 20:54