2011-05-09 20 views
5

Her alt grafikte aynı colorbar ölçeğini paylaşmak istiyorum. Ben 1'den büyük tamsayılar için caxis çalışır biliyorum, ancak 0001 gibi değerleri ile caxis kullanarak bir sorun var gibi görünüyor. Matlab'da dağılım grafikleri için ortak renk çubuğu, küçük sayılar

ex1

x = 0:1:10; 
y = 0:1:10; 
z1 = .1:-.01:0; 
z2 = .01:-.001:0; 

figure; 
subplot(1,2,1); 
scatter(x,y,10,z1); colorbar; 
subplot(1,2,2); 
scatter(x,y,10,z2); colorbar; 

Şimdi bir ortak Colorbar ölçeği olması dağılım subplots olmasını istiyorum. caxis'u kullanmayı denedim, ancak istenen sonuçları alamıyorum. Sol eksen, hepsi kahverengi olduğundan doğru ölçeklenmiyor. Bu nasıl düzeltilebilir? Gördüğün ne

ca = [0 .01]; 
figure; 
subplot(1,2,1); 
scatter(x,y,10,z1); caxis(ca); colorbar; 
subplot(1,2,2); 
scatter(x,y,10,z2); caxis(ca); colorbar; 

enter image description here

cevap

8

doğru davranış caxis ait olduğunu. caxis([0 0.01])'u ayarladığınızda, 0.01'dan daha büyük olan tüm değerlere kırmızı renk verilir (ya da ne olursa olsun kahverengidir). z1'da, son nokta dışındakilerin tümü 0.01'dan büyüktür ve hepsi kırmızı ile işaretlenmiştir. caxis([0 0.1])'u denediyseniz, sağdaki grafiğin tümü mavi renkte görünür. İki alt bölümünüzün dinamik aralığı, birbirinden ayrı bir sıralama sırasıdır ve bu nedenle, her ikisi de aynı caxis sınırları ile yeterli bir şekilde temsil edemezsiniz. .

Logaritmik renk skalası kullanmayı denediniz mi? Aşağıdaki deneyin:

subplot(1,2,1); 
scatter(x,y,10,log10(z1)); colorbar; 
caxis([-3 -1]) 

subplot(1,2,2); 
scatter(x,y,10,log10(z2)); colorbar; 
caxis([-3 -1]) 

enter image description here

yukarıdaki arsa daha iyi görünüyor?

+0

Bu işe yarıyor! Daha sonra renk çubuğundaki onay etiketlerini '1e-4' vb. – Elpezmuerto