MATLAB - переопределить YTickLabel - PullRequest
5 голосов
/ 28 февраля 2010

У меня проблема с редактированием цветовой шкалы в MATLAB. Цветная полоса нарисована, и я хочу добавить единицу измерения (дБ) для конкретного измерения на YTickLabels. Это делается с помощью следующих команд:

cy = get(ch,'YTickLabel');  
set(ch,'YTickLabel',[]);  
set(ch,'YTickLabel',strcat(cy,{' dB'})); 

Но когда я изменяю размер фигуры, MATLAB переопределяет интервалы, и вывод повторяется дважды, например:

10 дБ, 20 дБ, 30 дБ, 10 дБ, 20 дБ, 30 дБ вместо 10 дБ, 20 дБ, 30 дБ.

Как мне запретить MATLAB переопределять тики по оси Y, чтобы он не испортил мою цветовую панель?

Ответы [ 2 ]

5 голосов
/ 28 февраля 2010

Чтобы избежать изменения значений тика по оси Y при изменении размера фигуры, вам необходимо либо явно установить свойство 'YTick' , либо установить свойство 'YTickMode' до 'manual' (чтобы не допустить его автоматического изменения). Возможно, вам также придется явно установить свойство 'YLim' (или установить свойство 'YLimMode' на 'manual'), чтобы не допустить изменения границ цветовой шкалы. Вот одно из возможных решений:

labels = get(ch,'YTickLabel');    %# Get the current labels
set(ch,'YLimMode','manual',...    %# Freeze the current limits
       'YTickMode','manual',...   %# Freeze the current tick values
       'YTickLabel',strcat(labels,{' dB'}));  %# Change the labels

Вы также можете определить свойства галочки при создании цветовой полосы при первом вызове функции COLORBAR . Например, если вы знаете, что вам нужно иметь 3 значения тиков по 10, 20 и 30 с добавлением «дБ» к меткам, вы можете создать цветную полосу следующим образом:

ch = colorbar('YLim',[10 30],...                        &# The axis limits
              'YTick',[10 20 30],...                    %# The tick locations
              'YTickLabel',{'10 dB','20 dB','30 dB'});  %# The tick labels

Эти пределы, значения тиков и метки тиков также должны оставаться неизменными при изменении размера фигуры.

0 голосов
/ 28 февраля 2010

Вам также необходимо вручную установить свойство YTick, чтобы оно не изменялось при изменении размера фигуры.

cytick = get(ch,'YTick');    
set(ch,'YTick',cytick);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...