2015-10-05 4 views
1

Я хотел бы переместить заголовок colorbar (а не цветную панель). Я попытался, используя следующий код:MATLAB re-position colorbar title

cb = colorbar;          
set(get(cb,'title'),'string','Dislocation Density(m^{-2})'); 

lbpos = get(cb,'title'); 
pos = get (lbpos,'position'); 
set(lbpos, 'position', pos) ; 

У меня три проблемы:

  • Есть четыре числа в векторе pos, и я не знаю, какой номер я должен модифицировать, чтобы переместить заголовок вверх, чтобы он не перекрывал цветную панель.
  • Я попытался изменить какое-то число в pos, но независимо от того, что я делаю, заголовок просто перемещается вниз и перекрывается с цветной панелью.
  • Кроме того, когда я пытаюсь увеличить весь график с помощью кнопки , увеличьте кнопку в правом верхнем углу, положение названия цветного экрана также изменится. Этого не происходит, если я не пытаюсь переделать заголовок colorbar.
+0

обычно 'pos' определяется как' [startH startW lengthH lengthW] ' –

ответ

1

Согласно документации по text object, то 'Position' текстового объекта имеет только 3 номера [х, у, г], когда 'Units' является data, который установлен по умолчанию. Поэтому я думаю, что ваш цветной текст каким-то образом изменен. Давайте попробуем это:

cb = colorbar;          
set(get(cb,'title'),'string','Dislocation Density(m^{-2})'); 
lbpos = get(cb,'title'); 

% change Units to data 
set(lbpos,'Units','data'); 
% get position, should have 2 or 3 values 
pos = get (lbpos,'position'); 
% move up a bit 
pos(2) = pos(2)+3; 
set(lbpos, 'position', pos); 
+0

Я попробовал ваш метод, но даже я использую позы (2) +300 название Colorbar не двигается все. Какое число вектора «pos» представляет позицию заголовка colorbar? –

+0

Вы изменили единицы на данные? Согласно [документации] (http://de.mathworks.com/help/matlab/ref/text.html#input_argument_namevalue_position), вектор «позиция» - [x, y] или [x, y, z], поэтому все числа определяют положение заголовка colorbar (** «Единицы» ** - ** данные **). Если да, попробуйте установить (lbpos, 'position', pos (1: 2)); так как вектор 2 должен работать. Я думаю, что установка pos с вектором 4 вызывает вашу проблему. – MinF

+0

Я попытался использовать следующее: cb = colorbar; set (get (cb, 'title'), 'string', 'Плотность дислокаций (m^{- 2})'); lbpos = get (cb, 'title'); set (lbpos, 'Units', 'data'); pos = get (lbpos, 'position'); pos (2) = pos (2) -50; set (lbpos, 'position', pos (1: 2)); Но это все еще не работает. Используемая мной версия MATLAB - 2014a. –

 Смежные вопросы

  • Нет связанных вопросов^_^