2016-04-08 33 views
0

Matlabdaki dağılım grafiğinde metni yakınlaştırmanın herhangi bir yolu var mı? Ben kodu aşağıdakilere sahip varsayalım:Matlab'ta dağılım grafiğinde yakınlaştırma metni

Her bir veri noktasının ilişkili yakınlaştırmak ve {1,2,3,4,5,6,7,8,9,10} metin boyutunu uzaklaştırmak isteyen
x = 1:10; y = 1:10; scatter(x,y); 
a = [1:10]'; b = num2str(a); c = cellstr(b); 
dx = 0.1; dy = 0.1; 
text(x+dx, y+dy, c); 

Sırasıyla dışarıdaki düğmemizdeki zum düğmesine tıkladığımda. Matlab r2015b kullanıyorum.

Düzenleme ben düğmesi c zoom tıklayın Örneğin 1 da şekil geri kalanı ile yakınlaştırılmış olacak ve ben uzaklaştırdınız tıklarsanız düğme c de şekil geri kalanı ile uzaklaştırdınız edilecektir enter image description here

+0

Soruyu düzenliyorum. ve bir rakam ekleyin. Lütfen kontrol edebilir misin. – jubair

cevap

0

Grafikte MATLAB içinde açtığınızda, ekranın üst kısmında açık bir menü çubuğu açılmalıdır.

seçin: Görünüm-> Mülkiyet Editör

Buradan, ekranın alt kısmında GUI kullanarak düzenleme ve format boyut/renk/font istiyoruz metni tıklayabilirsiniz.

+0

1 2 3 4 metni şekilde görünür. X veya y ekseni etiketinden bahsetmiyorum. Benim soru şudur: ben yakınlaştırırken veya dışına çizerken (eksen etiketi olarak değil) arsadaki metni yakınlaştırabilirim – jubair

+0

@jubair Cevap, eksen etiketlerine özel değildir, metin nesnelerinin özelliklerini değiştirmek için iyi çalışır de. – mikkola

+0

Eğer bu şekilde yapmak isterseniz, her zaman el ile yakınlaştırma ve uzaklaştırma yapmanız gerekir. Soru, bunun elle nasıl ele alınacağıyla ilgili değildir. Cevap yine de soruyu tatmin etmiyor. Aşağıda gönderdiğim çözüme bakın. – jubair

0

Çözümü aldım. Zoom ActionPostCallback'un geri arama işlevini kullanmalı ve ek bir metin nesnesi parametresini geçmeliyiz. Ardından, zoom seviyesini geri aramadan ayarlamanız gerekir.

f = figure 
x = 1:10; y = 1:10; scatter(x,y); 
a = [1:10]'; b = num2str(a); c = cellstr(b); 
dx = 0.1; dy = 0.1; 
s = text(5, 5, 'c', 'fontsize',1); 
h = zoom(f); 

set(h, 'ActionPostCallback', {@mypostcallback,s}); 

function [ ] = mypostcallback(obj,event_obj,s) 
xlim = event_obj.Axes.XLim; 
fontsize = 10/(xlim(2)-xlim(1)); 
set(s,'fontsize',fontsize); 

end