Подтвердить что ты не робот

Построение списка координат (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?

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

4b9b3361

Ответ 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 ( )

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