2009-10-28 3 views
1

특정 기능의 시간 전개를 시각화하기 위해 여러 개의 등고선을 나란히 표시합니다. 각 윤곽선의 값과 색상을 모든 하위 영점에 공유하고 싶지만 새 윤곽선을 추가 할 때마다 윤곽선 값이 다시 계산되므로 (아래 그림 참조) 그 둘 사이의 비교는 의미가 없습니다.서브 플로트 간의 등고선 도형 속성 공유

Contour plots with colorbars http://www.inf.utfsm.cl/~rbonvall/colorbar-and-contour-plots.png

내가 성공하지 않고, 각 부가 적 줄거리 인스턴스 cmap, colorbaraxes 속성을 수동으로 서로 다른 조합을 설정하려고했습니다. 모든 하위 그림 사이에서 등고선 도표 속성을 공유하려면 어떻게합니까? 즉, 모든 하위 플롯에 대해 동일한 색상 막대를 얻는 방법은 무엇입니까?

답변

2

윤곽 플롯에 사용할 윤곽 값을 직접 지정할 수 있습니다.

alt text http://i36.tinypic.com/atpso5.png

import numpy as np 
import matplotlib.pyplot as plt 

x = np.arange(-1.2, 1.2, .025) 
y = np.arange(-1.2, 1.2, .025) 
X, Y = np.meshgrid(x, y) 
Z = np.cos(X)*np.cos(Y) 
Z = Z*Z 

plt.subplot(1,2,1) 
CS = plt.contour(X, Y, Z) # set levels automatically 
plt.clabel(CS, inline=1, fontsize=10) 
plt.subplot(1,2,2) 
CS = plt.contour(X, Y, Z-.1, CS.levels) # set levels as previous levels 
plt.clabel(CS, inline=1, fontsize=10) 
plt.show() 
+0

감사 톰, 이것은 현명한 방법입니다,하지만 난 다른 값의 범위와 여러 가지 다른 기능을하려 할 것이기 때문에 차라리 자동으로 계산 된 값을 가질 것 예를 들면 다음과 같습니다이다. 추가 답변이 없으면이 솔루션을 사용하고 모든 배열 중에서 최소값과 최대 값을 찾아 직접 값을 계산합니다. –

+0

그것은 단지 작은 변화입니다. 내 대답을 업데이트 할게. – tom10

+0

감사합니다. 나는'levels' 속성을 간과했다. 이제 작동 :) –