Построение списка координат (x, y) в python matplotlib


у меня есть список пар (a, b) что я хотел бы построить с matplotlib в python как фактические координаты x-Y. В настоящее время он делает два графика, где индекс списка дает координату x, а значения y первого графика -as в парах и значения y второго участка являются bs в пар.

чтобы уточнить, мои данные выглядят так:li = [(a,b), (c,d), ... , (t, u)] Я хочу сделать один-лайнер, который просто называет plt.plot() неправильные. Если бы мне не нужен был один лайнер, я мог бы тривиально сделать:

xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot(xs, ys)
  • как я могу получить matplotlib для построения этих пар в виде координат x-y?

Спасибо за помощь!

3 66

3 ответа:

по состоянию на :

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()

будет:

enter image description here

для распаковки данных из пар в списки используйтеzip:

x, y = zip(*li)

Итак, один-лайнер:

plt.scatter(*zip(*li))

Если у вас есть массив NumPy вы можете сделать это:

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)

Если вы хотите построить единую линию, соединяющую все точки в списке

plt . plot ( li [ : ] )

plt . show ( )

это построит линию, соединяющую все пары в списке как точки На декартовой плоскости от начала списка до конца. Я надеюсь, что это то, что вы хотели.