У меня есть список пар, (a, b)
которые я хотел бы построить matplotlib
в Python как фактические координаты xy. В настоящее время он создает два графика, где индекс списка дает координату x, а значения y первого графика - это a
s в парах, а значения y второго графика - b
s в парах.
Чтобы прояснить, мои данные выглядят так: 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 построить эти пары как координаты xy?
python
matplotlib
plot
coordinates
CodeKingPlusPlus
источник
источник
plt.scatter( * xy.T )
работает: кратко и неясно дляx, y = xy.T; plt.scatter( x, y )
x, y = zip(*li)
действительно элегантный код Python! Я делал более простые две строки кода со сжатием списка в каждой строке (как в исходном вопросе)plt.scatter
пример имеет к вопросу.Если у вас есть массив numpy, вы можете сделать это:
источник
np.array
отdata=np.array([[x1,y1],[x2,y2],etc.])
и использованияplt.plot(data)
. Мне всегда придется давать два массива вместо массивов массивов?plt.plot(*data.T)
который делает то же, что и выше, но пропускает промежуточный шаг.Если вы хотите построить одну линию, соединяющую все точки в списке
Это построит линию, соединяющую все пары в списке как точки на декартовой плоскости от начала списка до конца. Я надеюсь, что это то, что вы хотели.
источник
scatter()
.