MATLAB - Переопределите YTickLabel

У меня есть проблема с редактированием шкалы палитры в 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, таким образом, он не портит мою шкалу палитры?

5
задан gnovice 28 February 2010 в 02:26
поделиться

2 ответа

Чтобы значения деления оси Y не менялись при изменении размера фигуры, вам нужно будет либо явно установить свойство 'YTick' , либо установить ' YTickMode ' свойство до «вручную» (чтобы оно не изменялось автоматически). Вам также может потребоваться явно установить свойство '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

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

5
ответ дан 14 December 2019 в 19:10
поделиться

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

cytick = get(ch,'YTick');    
set(ch,'YTick',cytick);
0
ответ дан 14 December 2019 в 19:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: