2016-11-07 34 views
0

我的第一輪廓是:顏色繪製第二輪廓之後改變

figure 
x = -2:0.2:2; 
y = -2:0.2:3; 
[X,Y] = meshgrid(x,y); 
Z = X.*exp(-X.^2-Y.^2); 
contour(X,Y,Z,'LineWidth', 2) 

enter image description here

然後我繪製第二輪廓:

hold on 
x = -2:0.2:2; 
y = -2:0.2:3; 
[X,Y] = meshgrid(x,y); 
Z = exp(-X.^2-Y.^2); 
contour(X,Y,Z,'LineWidth', 2) 

enter image description here

如被看到,第一輪廓的顏色被改變。 如何保持第一個輪廓顏色?

+0

通過將'Z'的範圍映射到顏色映射來確定顏色。第一個繪圖'max(Z)'小於第二個繪圖的'max(Z)',因此映射改變了。如果在第一個之前繪製第二個,它將保持相同的顏色。 – Shai

+0

@Shai感謝您的回覆,但您的解決方案無法解決我的問題,因爲上述代碼只是一個小例子,在我的主代碼中,我不知道哪個輪廓必須是第一個。我想在任何條件下保持第一輪廓的顏色。 –

回答

1

輪廓的顏色正在改變,因爲Matlab 自動根據Z的值更改顏色映射。爲了修復映射,您可以使用caxis manual覆蓋默認的caxis auto