देर से जवाब, लेकिन दो चीजें जोड़ने के लिए:
'ColorOrder'
संपत्ति कैसे बदलें और इसके साथ वैश्विक डिफ़ॉल्ट कैसे सेट करें 'DefaultAxesColorOrder'
, इसकी जानकारी के लिए, इस पोस्ट के नीचे "परिशिष्ट" देखें।
- MATLAB सेंट्रल फाइल एक्सचेंज पर एक बहुत अच्छा टूल है जो किसी भी प्रकार के नेत्रहीन रंगों को उत्पन्न करने के लिए है, यदि आपके पास इसका उपयोग करने के लिए इमेज प्रोसेसिंग टूलबॉक्स है। जानकारी के लिए आगे पढ़ें।
ColorOrder
axes
संपत्ति का उपयोग करते समय रंग की एक सूची के माध्यम से स्वचालित रूप से चक्र करने के लिए अनुमति देता है MATLAB hold on/all
(फिर से, नीचे परिशिष्ट देखते हैं कि कैसे करने के लिए set
/get
ColorOrder
एक विशिष्ट अक्ष के लिए या विश्व स्तर पर के माध्यम से DefaultAxesColorOrder
)। हालाँकि, डिफ़ॉल्ट MATLAB केवल रंगों की एक छोटी सूची ( R2013b के रूप में सिर्फ 7 ) को निर्दिष्ट करता है , और दूसरी ओर अधिक डेटा श्रृंखला के लिए रंगों का एक अच्छा सेट खोजने के लिए समस्याग्रस्त हो सकता है। 10 भूखंडों के लिए, आप स्पष्ट रूप से डिफ़ॉल्ट पर भरोसा नहीं कर सकते ColorOrder
।
करने के लिए एक शानदार तरीका एन चाक्षुष रूप से भिन्न रंगों को परिभाषित के साथ है "उत्पन्न ज़्यादा से ज़्यादा Perceptually-अलग रंग" (GMPDC) MATLAB केंद्रीय फ़ाइल फ़ाइल एक्सचेंज में जमा । यह लेखक के अपने शब्दों में सबसे अच्छा वर्णित है:
यह फ़ंक्शन "लैब" रंग स्थान के संदर्भ में अलग-अलग रंगों के एक सेट को उत्पन्न करता है , जो RGB के मुकाबले मानव रंग की धारणा से अधिक निकटता से मेल खाता है। संभावित रंगों की प्रारंभिक बड़ी सूची को देखते हुए, यह उस सूची में प्रविष्टि को चुनता है जो पहले से चुनी गई प्रविष्टियों में से सबसे दूर (लैब स्पेस में) है।
उदाहरण के लिए, जब 25 रंगों का अनुरोध किया जाता है:
GMPDC सबमिशन को पिक ऑफ द वीक के रूप में मैथवर्क्स के आधिकारिक ब्लॉग पर चुना गया था में 2010 में चुना गया था क्योंकि रंगों की एक मनमानी संख्या का अनुरोध करने की क्षमता के कारण (MATLAB के 7 डिफ़ॉल्ट रंगों के विपरीत)। उन्होंने MATLAB ColorOrder
को स्टार्टअप पर सेट करने का उत्कृष्ट सुझाव भी दिया ,
distinguishable_colors(20)
बेशक, आप ColorOrder
किसी एक अक्ष के लिए सेट कर सकते हैं या बस किसी भी तरह से उपयोग करने के लिए रंगों की एक सूची तैयार कर सकते हैं। उदाहरण के लिए, 10 "अधिकतम अवधारणात्मक-विशिष्ट रंग" उत्पन्न करने के लिए और एक ही अक्ष पर 10 भूखंडों के लिए उनका उपयोग करें ( लेकिन उपयोग नहीं करते हैं ColorOrder
, इस प्रकार लूप की आवश्यकता होती है ):
% Starting with X of size N-by-P-by-2, where P is number of plots
mpdc10 = distinguishable_colors(10) % 10x3 color list
hold on
for ii=1:size(X,2),
plot(X(:,ii,1),X(:,ii,2),'.','Color',mpdc10(ii,:));
end
प्रक्रिया को सरलीकृत किया गया है, और कोई आवश्यकता नहीं हैfor
ColorOrder
अक्ष गुण के साथ, लूप की गया है :
% X आकार N-by-P-by-2
mpdc10 = विशिष्ट_रक्षक (10)
हा = कुल्हाड़ियों; पकड़ (हा, 'चालू')
सेट (हा, 'ColorOrder', mpdc10)% --- सेट ColorOrder यहाँ ---
प्लॉट (X (:,:, 1), X (:,:, 2), '-')% लूप की जरूरत नहीं, 'कलर' की जरूरत नहीं। वाह!
अनुबंध
प्राप्त करने के लिए ColorOrder
वर्तमान अक्ष के लिए इस्तेमाल किया आरजीबी सरणी,
get(gca,'ColorOrder')
ColorOrder
नए अक्षों के लिए डिफ़ॉल्ट पाने के लिए,
get(0,'DefaultAxesColorOrder')
ColorOrder
MATLAB की शुरुआत में 10 रंगों के साथ नए वैश्विक सेट करने का उदाहरण startup.m
:
set(0,'DefaultAxesColorOrder',distinguishable_colors(10))