Построение списка координат (x, y) в python matplotlib
У меня есть список пар (a, b)
, который я хотел бы построить с помощью matplotlib
в python как фактические координаты x-y. В настоящее время он создает два графика, где индекс списка дает координату x, а первые значения графика y представляют собой a
в парах, а второй график y - это b
в парах.
Чтобы уточнить, мои данные выглядят следующим образом: 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?
Спасибо за помощь!
Ответы
Ответ 1
Как этот пример:
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))
Ответ 2
Если у вас есть пустой массив, вы можете сделать это:
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.show()
Ответ 3
Если вы хотите построить одну строку, соединяющую все точки в списке
plt . plot ( li [ : ] )
plt . show ( )
Это построит линию, соединяющую все пары в списке как точки на картезианской плоскости от начала списка до конца.
Я надеюсь, что это то, что вы хотели.