Срез списка 2D-точек для построения графиков с помощью matplotlibPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Срез списка 2D-точек для построения графиков с помощью matplotlib

Сообщение Anonymous »

У меня есть список двумерных точек, представленных в массиве стилей numpy:
lines = np.array([
[[1,1], [2,3]], # line 1 (x,y) -> (x,y)
[[-1,1], [-2,2]], # line 2 (x,y) -> (x,y)
[[1,-1], [2,-7]] # line 3 (x,y) -> (x,y)
])

Я хотел бы построить эти линии с помощью matplotlib в самой простой форме.
Однако большинство методов matplotlib ожидают, что точки будут представлены покомпонентно, например ( [x1, x2, x3, ...], [y1, y2, y3, ...]) вместо точечного.
Мне удалось получить срезы правильно для колчана график типа с векторами:
x = lines[:,0,0]
y = lines[:,0,1]
u = lines[:,1,0]
v = lines[:,1,1]

# quiver([X, Y], U, V, [C], **kwargs)
plt.quiver(x, y, u, v, color=['r','b','g'], scale=1, scale_units='xy', angles='xy')
plt.xticks(np.arange(-10, 10, 1))
plt.yticks(np.arange(-10, 10, 1))
plt.grid()
plt.show()

Но у меня сложилось впечатление, что quiver не совсем подходит для моего варианта использования. Особенно мне потребовалось немало времени, чтобы разобраться с аргументами Scale, Scale_units и angulars. Без них векторы отображались «неправильно».
Я бы предпочел использовать более простой график, в этой подписи
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

который для каждой отображаемой линии ожидает две координаты x, за которыми следуют координаты y.
Итак, для строк выше нам нужно
rearranged = [ [1,2],[1,3], [-1,-2],[1,2], [1,2],[-1,-7] ]
# ^line1 ^line2 ^line3

Если я добавлю их в вызов сюжета статически, это именно то, что мне нужно.
Вопрос в том, как я могу нарезать или изменить исходный массив строк?
Все, что у меня есть, это
lines[:,[0,0],[0,1]]

но это дает мне только координаты x каждой строки:
[[ 1 1]
[-1 1]
[ 1 -1]]


Подробнее здесь: https://stackoverflow.com/questions/790 ... matplotlib
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»