Как вставить символ бесконечности на ось X гистограммы Matlab?

Как добавить символ бесконечности на ось X гистограммы Matlab?

Естественно, можно вставить символ бесконечности, то есть '\infty' для xlabel, как показано в последней строке вставленного кода.
Но я хочу добавить знак бесконечности в полосу оси X, а не в метку оси X.< br> Как я могу это сделать? Для подробного разъяснения ниже добавлен следующий скрипт:

data=[1 2 3; 1 3 4; 3 1 2];
bar(data)
set(gca,'YLim',[0 3])
set(gca,'YTick',[0:0.5:3])
set(gca, 'YTickLabel',num2str(get(gca,'YTick')','%02.1f%%'))
set(gca,'Xtick',1:3,'XTickLabel',{'\infty' ; '20 dB'; '15 dB'})
xlabel('\infty dB') % x-axis label

Проблема с изображением


person mohsen    schedule 14.11.2014    source источник
comment
Вы видели этот связанный вопрос? Это может быть полезно.   -  person rozsasarpi    schedule 14.11.2014
comment
Извините, это не работает для случая выше. @Арпи   -  person mohsen    schedule 14.11.2014


Ответы (1)


Как насчет этого решения с использованием функции format_tick из файлового обмена?:

data=[1 2 3; 1 3 4; 3 1 2];
bar(data)
set(gca,'YLim',[0 3])
set(gca,'YTick',[0:0.5:3])
set(gca, 'YTickLabel',num2str(get(gca,'YTick')','%02.1f%%'))
set(gca,'Xtick',1:3)
format_ticks(gca, {'$\infty$' ; '20 dB'; '15 dB'})

введите здесь описание изображения

Я пропустил xlabel, потому что он мешает Xtick, но, вероятно, его можно легко переместить в более низкое положение.

EDIT: чтобы исправить перекрытие Xtick и xlabel, добавьте это в конец кода:

xlabh = get(gca,'XLabel');
set(xlabh,'Position',get(xlabh,'Position') - [0 .1 0])

введите здесь описание изображения

person rozsasarpi    schedule 14.11.2014
comment
Спасибо за ваше решение @arpi - person mohsen; 14.11.2014
comment
@mohsen Добро пожаловать. Я расширил ответ кодом, который устраняет проблему перекрытия. - person rozsasarpi; 14.11.2014