2011-03-28 16 views
6

न्यूनतम उदाहरण है कि इसे प्राप्त नहीं करता है:एक रंगीन साजिश को एक समोच्च साजिश के साथ ओवरले कैसे करें जो एक अलग रंगरूप का उपयोग करता है?

[X,Y,Z] = peaks; 
figure; 
pcolor(X,Y,Z); 
shading flat; 
hold all; 
axes; 
contour(X,Y,Z); 
colormap gray; % this should only apply to the contour plot axes... 
axis off;  % ... but it doesn't 

यह दोनों समोच्च साजिश और ग्रेस्केल colourmap में छद्म रंग साजिश को दर्शाता है। हालांकि, मैं जो हासिल करना चाहता हूं वह केवल रंगों को बदल रहा है।

यह केवल एक साधारण उदाहरण है, वास्तविकता में समोच्च साजिश अलग-अलग डेटा का है जिसमें एक अलग सीमा है, इसलिए दो स्वतंत्र caxis सेटिंग्स भी आवश्यक हैं।

+0

से संबंधित भी देखना चाहते हैं: http://stackoverflow.com/questions/1744667/plot-overlay-matlab –

उत्तर

4

आप दो colormaps catenating, और सुनिश्चित करें कि कार्यों के मूल्यों ऐसी है कि वे रंग मैप का सही भाग का उपयोग कर रहे हैं बनाने के द्वारा इस समस्या को ठीक कर सकते हैं: एक और अधिक के लिए

cm = [jet(64);gray(64)]; 
figure, 
pcolor(X,Y,Z) 
shading flat 
hold on 
%# Z in the contour starts after the maximum 
%# of Z in pcolor 
contour(X,Y,Z-min(Z(:))+max(Z(:))+2,'LineWidth',2) 
%# apply the colormap 
colormap(cm) 

enter image description here

सुविधाजनक समाधान, आप this file exchange pick of the week

+1

धन्यवाद। यदि कार्य परिमाण परिमाण के आदेश से भिन्न होता है तो किसी को सावधान रहना पड़ सकता है। मैं [फ्रीजकॉलर्स] (http://www.mathworks.com/matlabcentral/fileexchange/7943) पर भी एक नज़र डालेगा, आपने –

+0

@ टोबियास किएनज़लर से लिंक किया है: हां, डेटा की स्केलिंग प्राप्त करना मुश्किल हो सकता है/सही रंगमंच साथ ही, अगर डेटाैटिप सही मान प्रदर्शित नहीं करता है तो यह परेशान हो सकता है। मेरा समाधान वास्तव में एक कामकाज है। – Jonas

संबंधित मुद्दे