2016-04-08 2 views
0

Есть ли способ масштабировать текст в области разброса в Matlab? Предположим, я следующий код:Масштабирование текста в области разброса в Matlab

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); 

Я хочу, чтобы увеличить и уменьшить размер текста {1,2,3,4,5,6,7,8,9,10}, связанный с каждой точки данных когда я нажимаю кнопку увеличения на нашей кнопке. Я использую matlab r2015b.

Edit 1 Например, когда я нажимаю кнопку увеличения масштаба с также будет увеличено с остальной частью фигуры, и если я нажимаю масштаб изображения кнопки с также будет увеличен с остальной частью фигуры enter image description here

+0

Я редактирую вопрос. и добавьте фигуру. Можете ли вы проверить. – jubair

ответ

0

Когда вы открываете график в MATLAB, вы должны иметь панель меню, открывающуюся в верхней части экрана.

Выберите: Просмотр-> Property Editor

Здесь вы можете нажать на текст, который вы хотите изменить и размер формат/цвет/шрифт с помощью графического интерфейса в нижней части экрана.

+0

Текст 1 2 3 4 появляется на рисунке. Я не говорю о метке оси x или y. Мой вопрос заключается в том, как я могу масштабировать текст, который находится на графике (не как метка оси), когда я увеличиваю или уменьшаю фигуру – jubair

+0

@jubair. Ответ не является эксклюзивным для меток осей, он отлично подходит для изменения свойств текстовых объектов также. – mikkola

+0

Если вы хотите сделать это, вам всегда нужно увеличивать и уменьшать масштаб вручную. Вопрос не в том, как обращаться с этим вручную. Ответ в любом случае не отвечает. См. Решение, которое я разместил ниже. – jubair

0

У меня есть решение. Нам нужно использовать функцию обратного вызова для увеличения ActionPostCallback и передать дополнительный параметр текстового объекта. Затем нам нужно отрегулировать уровень масштабирования от обратного вызова.

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 
Смежные вопросы