Python Matplotlib Quiver неправильная ориентация

Я создаю блокнот ipython по векторному исчислению. (по крайней мере основы). В этом блоке кода я пытаюсь построить псевдоцветной график функции x^2 + XY + Y^2 и построить над ним векторное поле, заданное его градиентом U = 2X+Y и V = 2Y+X

Однако график колчана кажется повернутым на 90 градусов, поэтому он не указывает в правильном направлении.

x = arange(-2.0, 2.0,00.1)
y = arange(-2.0, 2.0,00.1)
X,Y = meshgrid(x, y)
Z = X**2 + X*Y + Y**2
GradX = (2*X+Y)
GradY = (2*Y+X)
figure(figsize=(10, 10))
im = imshow(Z, cmap=cm.RdYlBu, interpolation='none', extent=[-2,2,-2,2])
quiver(X, Y, GradX, GradY, angles='xy', scale_units='xy')
show()

мой сюжет

введите здесь описание изображения


person Lucas L    schedule 08.02.2014    source источник
comment
Разве это не ваше изображение, которое вращается? Ваш градиент (GradX, GradY) должен быть наибольшим, когда X и Y являются наибольшими (оба в смысле абс) и имеют тот же знак, что и в вашем текущем изображении, но не было бы, если бы вы повернули график колчана.   -  person tom10    schedule 08.02.2014


Ответы (1)


Я подозреваю, что вам нужно:

im = imshow(Z, cmap=cm.RdYlBu, interpolation='none', extent=[-2,2,-2,2], origin='lower')

То есть укажите origin='lower', чтобы поставить y=-2 в левый нижний угол. Как я уже упоминал в комментарии, я думаю, что это изображение повернуто (на самом деле перевернуто - хотя это та же разница в этом сюжете), а не сюжет колчана.

Анализ: в ваших уравнениях все Z, GradX и GradY должны быть наибольшими по величине в (+,+) и (-,-) углах графиков, где знаки «взаимодействуют». Как вы написали, это свойство есть только у графика колчана, поэтому изображение повернуто. Кроме того, эти проблемы всегда связаны с изображением (из-за противоречия между компьютерным соглашением, согласно которому изображения индексируются с левого верхнего угла, и математическим соглашением, согласно которому наименьшее значение Y отображается внизу оси).

введите здесь описание изображения

person tom10    schedule 08.02.2014
comment
Огромное спасибо! Я собирался отредактировать вопрос, как только понял, что это действительно неправильное изображение. Думаю, мне нужно многому научиться... - person Lucas L; 09.02.2014