2013-04-18 4 views
3

matplotlib을 사용하여 두 변수의 함수를 플롯하려고합니다. 이 함수는 x 좌표, y 좌표 및 함수 값에 해당하는 세 개의 1 차원 배열 X, YF에 저장됩니다. 이 데이터를 등고선으로 그릴 수 있습니까? griddata()으로 솔루션을보기 전에 x와 y 좌표가 이미 잘 정의되어 있기 때문에 보간을 피하고 싶습니다.griddata()없이 1D 배열을 사용하는 2D 플롯

+0

가능한 중복 : http://stackoverflow.com/questions/14120222/matplotlib-imshow-with-irregular-spaced-data-points – Hooked

+0

당신은 당신이 정확히 어떤 주어진 시점에서 함수 F을 계산할 수 있다고 때문에 거기에 함수 griddata()가 사용되었습니다. 배열 X와 Y에 일정한 균일 한 좌표를 포함한 좌표 분포를 만들 수 있으므로 추가 보간을 피하고 싶습니다. 따라서이 링크는 도움이되지 않습니다. – freude

답변

4

the contour demo of the matplotlib docs을 살펴보십시오.

delta = 0.025 
x = np.arange(-3.0, 3.0, delta) 
y = np.arange(-2.0, 2.0, delta) 
X, Y = np.meshgrid(x, y) 
F = your_function(X.ravel(), Y.ravel()) 
CS = plt.contour(X, Y, F.reshape(X.shape)) 
plt.clabel(CS, inline=1, fontsize=10) 
+0

Z와 F의 차이점은 무엇입니까? 필자의 경우, F는 1 차원 배열이다. – freude

+0

@freude'Z'는 오타 였고'F' 여야한다. 데이터를 2D 그리드로 재구성해야합니다. 편집 방법을 참조하십시오. – Jaime

+0

그것이 바로 제가 추구 한 것입니다. 그것은 완벽하게 작동합니다. 고맙습니다! – freude

관련 문제