2012-10-04 16 views
5

मेरे पास मूल्यों की एक विस्तृत श्रृंखला है और स्कैटर (एक्स, वाई, जेड) के रूप में साजिश करते समय, जेड अक्ष दिखाते हुए कलरबार मूल्यों की एक विस्तृत श्रृंखला दिखाता है, अब मुझे निम्न श्रेणी मानों में रूचि नहीं है। कलर बार में रेंज बदलने के लिए कोई तरीका है। मेरे पास साजिश के लिए मेरे कोड का निम्नलिखित भाग है, मैं लॉग प्लॉट प्लॉट करने का भी इरादा रखता हूं। उदाहरण के लिए। मैं अपनी लॉग प्लॉट में सीमा को अधिकतम मूल्य तक 14 सेट करना चाहता हूं।मैन्युअल रूप से रंग पट्टी में रेंज कैसे सेट करें?

मैं कुछ मूल्यों को प्रदर्शित नहीं करना चाहता हूं। ताकि कलर बार में सीमित सीमा हो, 14 से अधिकतम तक कहें। वर्तमान में यह लॉग प्लॉट में 9 से अधिकतम दिखा रहा है।

scatter(x(1:end-1), y(1:end-1), 5, gnd); 

title('G plot (m^-^2)'); 

colorbar('eastoutside'); 

xlabel(' X-axis (microns)'); 

ylabel('Y-axis (microns)'); 

figure; 

log_g=log10(gnd); 

scatter(x(1:end-1), y(1:end-1), 5,log_g); 

colorbar('eastoutside'); 

xlabel(' X-axis (microns)'); 

ylabel('Y-axis (microns)'); 

title('G Density, log plot (m^-^2)'); 
+0

यह आप क्या चाहते हैं बहुत स्पष्ट नहीं है। क्या आप कलरबार में रंग बदलना चाहते हैं, या आप कुछ मूल्यों को प्रदर्शित होने से रोकना चाहते हैं? – Junuxx

+0

मैं कुछ मूल्यों को बिल्कुल प्रदर्शित नहीं करना चाहता हूं। ताकि कलर बार में सीमित सीमा हो, 14 से अधिकतम तक कहें। वर्तमान में यह लॉग प्लॉट में 9 से अधिकतम दिखा रहा है। – rcty

+0

क्यों न केवल उन बिंदुओं को हटाएं जिन्हें आप साजिश से नहीं दिखाना चाहते हैं? – slayton

उत्तर

10

मेरा मानना ​​है कि caxis वह आदेश है जिसे आप ढूंढ रहे हैं। उपयोग:

caxis([minValue maxValue]) 

caxis इस तरह का उपयोग करना, सीमा [minValue maxValue] बाहर सभी मूल्यों रंग मैप में सबसे कम या उच्चतम मूल्य के साथ क्रमश: रंगीन होगा।

और दोस्तों colormap का उपयोग करते हैं, तो आप वर्तमान रंगमंच को समायोजित करना होगा यदि आप उपयोग किए गए रंगों की संख्या को समायोजित करना चाहते हैं। ऐसा ऐसा करें:

%# get current colormap 
map = colormap; 

%# adjust for number of colors you want 
rows = uint16(linspace(1, size(map,1), NUM_COLORS)) ; 
map = map(rows, :); 

%# and apply the new colormap 
colormap(map); 

बेशक, इसे caxis के साथ संयोजित करना सबसे शक्तिशाली है।

आप सीमा के बाहर कुछ मान को दिखाने के लिए नहीं करना चाहते हैं, कि colorbar या caxis के लिए एक नौकरी नहीं है, यह आप पर निर्भर है - आप डेटा है कि साजिश रची है समायोजित करना होगा ताकि सभी मान आप डॉन टी प्लॉट NaN प्लॉट करना चाहते हैं। ऐसा करने से मैटलैब समझ जाएगा कि आप इन आंकड़ों को साजिश नहीं करना चाहते हैं:

data(indices_to_data_not_to_plot) = NaN; 
surf(x,y,data); %# or whatever you're using 
+0

yup, मैंने इसका इस्तेमाल किया था, लेकिन मैं कलर बार को केवल 5 मानों को दिखाने के लिए चाहता हूं जैसे कैक्सिस ([14 16]) मैं सिर्फ 14 14.5 15 15.5 16 मान – rcty

+0

@rcty दिखाने के लिए चाहता हूं: आह, ऐसा ही। आपको कस्टम रंगरूप को परिभाषित करना होगा, मुझे संपादित करने दें। –

0

इसके बारे में कैसे?

% don’t know why, but apparently your x and y are one value too long? 
x = x(1:end-1); y = y(1:end-1); 

% only plot values of 14 or higher 
scatter(x(gnd>=14), y(gnd>=14), 5, gnd(gnd>=14); 
+0

असल में यह ज़ेड अक्ष (जीएनडी) है जो कलरबार पर है ... लेकिन मैंने आपकी विधि भी कोशिश की है, यह – rcty

+0

काम नहीं करता है हां, यह एक्स और वाई मानों का चयन करता है जहां जीएनडी 14 से बड़ा या बराबर है। सभी डेटापॉइंट्स एक जीएनडी <14 के साथ छोड़ दिया जाता है। मैं देखता हूं कि मैं उसी फ़िल्टर को जीएनडी में लागू करना भूल गया था। सही किया। – Junuxx

0

इस प्रयास करें:

cmap = colormap; % get current colormap 
cmap=cmap([min max],:); % set your range here 
colormap(cmap); % apply new colormap 
colorbar(); 
संबंधित मुद्दे