2014-02-08 2 views
0

벡터 미적분에 ipython 노트를 작성 중입니다. (기본 사항, 적어도). 코드 IM이 블록 함수의 의사 색조 플롯을하려고 X^2 + XY + Y^2 시키고 플롯의 기울기 U = 2X + Y 및 V = 2Y + XPython Matplotlib 잘못된 방향 전환

의해 주어지는 벡터 필드 화살 표시 플롯 그러나

따라서 올바른 방향

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() 

my plot

enter image description here

+1

이미지가 회전하지 않습니까? X와 Y가 가장 크거나 (Abs 의미에서) 가장 큰 경우 그래디언트 (GradX, GradY)가 가장 커야하며 현재 이미지의 경우와 같은 부호가 있지만 떨리는 그림을 회전 한 경우에는 그렇지 않습니다. – tom10

답변

3

가리키는 아니라 90도 회전 할 나는 당신이 필요로하는 의심 :이다

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

이, 왼쪽 하단에 y=-2을 넣어 origin='lower'를 지정합니다. 코멘트에서 언급했듯이, 나는 그것이 떨리는 음모가 아니라 회전 된 이미지 (실제로 뒤집 혔음 -이 음모에서 동일한 차이 임에도 불구하고)라고 생각합니다.

분석 : 당신의 방정식, Z, GradXGradY는 (+, +)의 크기에 가장 큰이어야하며 모두에서 (-, -) 부호는 "협력"플롯의 코너. 게시 할 때 떨림 음모 만이 속성을 가지므로 회전 된 이미지입니다. 또한 이미지는 항상 왼쪽 위와 Y 축의 가장 작은 값이 축에서 가장 작게 표시되는 수학적 규칙에 따라 인덱싱되는 컴퓨터 규칙 사이의 충돌로 인해 이러한 문제가있는 이미지입니다.

enter image description here

+0

정말 고마워요! 내가 틀린 이미지 였음을 알게되면 나는 그 질문을 편집하려하고 있었다. 내가 배울 점이 많다. –