Geç cevap, ancak eklenecek iki şey var:
'ColorOrder'
Özelliğin nasıl değiştirileceği ve genel bir varsayılanın nasıl ayarlanacağı hakkında bilgi için 'DefaultAxesColorOrder'
, bu yazının altındaki "Ek" bölümüne bakın.
- MATLAB Merkezi Dosya Değişimi'nde, kullanmak için Görüntü İşleme Araç Kutunuz varsa, görsel olarak farklı renklerin herhangi bir sayısını oluşturmak için harika bir araç vardır. Ayrıntılar için okumaya devam edin.
Bu ColorOrder
axes
özellik , MATLAB'ın kullanırken bir renk listesi arasında otomatik olarak geçiş yapmasına izin verir hold on/all
(yine, belirli bir eksen için veya genel olarak nasıl yapılacağı set
/ get
yapılacağı ColorOrder
için aşağıdaki Ek'e bakın DefaultAxesColorOrder
). Bununla birlikte, varsayılan olarak MATLAB, geçiş yapmak için yalnızca kısa bir renk listesi ( R2013b'den itibaren yalnızca 7 ) belirtir ve diğer yandan, daha fazla veri serisi için iyi bir renk kümesi bulmak sorunlu olabilir. 10 arsa için, açıkça varsayılana güvenemezsiniz ColorOrder
.
İçin harika bir yoldur N görsel olarak ayrı renkleri tanımlamak ile MATLAB Merkez Dosya Dosya Exchange "Maksimum olarak algısal-Farklı Renkler üret" (GMPDC) sunulması . En iyi şekilde yazarın kendi sözleriyle açıklanır:
Bu işlev , insan renk algısına RGB'den daha yakından eşleşen "Lab" renk uzayına referansla ayırt edilebilen bir dizi renk oluşturur . Olası renklerin ilk büyük listesi verildiğinde, önceden seçilmiş tüm girişlerden en uzaktaki (Lab alanında) girişi yinelemeli olarak seçer.
Örneğin 25 renk istendiğinde:
GMPDC gönderimi, MathWorks'ün resmi blogunda , kısmen isteğe bağlı sayıda renk talep etme yeteneği nedeniyle ( MATLAB'ın 7 varsayılan renkte yerleşik olarak) 2010'da Haftanın Seçimi olarak seçildi . MATLAB'leri ColorOrder
başlangıçta ayarlamak için mükemmel bir öneri bile yaptılar:
distinguishable_colors(20)
Elbette, ColorOrder
tek bir eksen için ayarlayabilir veya istediğiniz şekilde kullanmak için bir renk listesi oluşturabilirsiniz. Örneğin, 10 "algısal olarak maksimum farklı renk" oluşturmak ve bunları aynı eksende 10 çizim için kullanmak ( ancak kullanmamak ColorOrder
, dolayısıyla bir döngü gerektirir ):
% 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
İşlem, eksen özelliği ile döngü gerektirmedenfor
ColorOrder
basitleştirilmiştir :
N-by-P-by-2 boyutunun% X'i
mpdc10 = ayırt edilebilir_renkler (10)
ha = eksenler; tutma (ha, 'açık')
set (ha, 'ColorOrder', mpdc10)% - ColorOrder'ı BURADAN ayarlayın ---
plot (X (:,:, 1), X (:,:, 2), '-.')% döngü gerekli DEĞİL, 'Renk' gerekli DEĞİLDİR. Yaşasın!
EK
Almak için ColorOrder
geçerli eksen için kullanılan RGB dizisi,
get(gca,'ColorOrder')
ColorOrder
Yeni eksenler için varsayılanı almak için ,
get(0,'DefaultAxesColorOrder')
ColorOrder
MATLAB başlangıcında 10 renk ile yeni global ayarlama örneği startup.m
:
set(0,'DefaultAxesColorOrder',distinguishable_colors(10))