Matlab как добавить значения по оси x графика

Построить изображение

Постройте график с помощью `set (gca, 'XTick', [1 10 20 50 100])

График с set (gca, 'XTick', [1 10 20 50 100])

Всем привет! Я создал график с разбросом функции, и на оси абсцисс показаны только три значения: [1 10 100]. Я хотел бы добавить несколько значений, в частности, я хотел бы показать [1 5 10 20 50 100]. Как я могу это сделать?

Мой код:

line(contrast2*100, RNorm2,'color','black');
hold on
scatter (contrast2*100, RNorm2,'y','filled');
set(gca,'XScale','log')
set(gca,'XTickLabel',num2str(get(gca,'XTick').'))
set(gca,'XTick',[1 10 20 50 100])
set(gca,'YScale','log')
set(gca,'YTickLabel',num2str(get(gca,'YTick').'))
grid on

person Inis    schedule 26.03.2016    source источник
comment
Добро пожаловать в SO! что ты уже испробовал? Поиск в Google вашего заголовка дает de.mathworks.com/help/matlab/creating_plots/ в качестве первого результата. HTH.   -  person Matthias W.    schedule 26.03.2016
comment
Да, я пробовал использовать set (gca, 'XTick', [1 10 20 50 100]), но на моем графике он не работает: /   -  person Inis    schedule 26.03.2016
comment
@Inis, можете ли вы включить эту строку в свой пример выше, чтобы мы могли понять, почему она, возможно, не сработала?   -  person Suever    schedule 26.03.2016
comment
@Suever Я просто включил его и добавил еще одно изображение с результатом :)   -  person Inis    schedule 26.03.2016


Ответы (1)


Вы хотите установить свои XTick значения до, чтобы вы установили свой XTickLabels, поскольку вы конструируете свой XTickLabels из значений самих XTicks.

В настоящее время у вас есть 5 XTick значений и только 3 метки. Из-за этого MATLAB будет повторять метки, которые вы должны заполнить метками для всех XTick местоположений.

line(contrast2*100, RNorm2,'color','black');
hold on
scatter (contrast2*100, RNorm2,'y','filled');
set(gca,'XScale','log')
set(gca,'XTick',[1 10 20 50 100])
set(gca,'XTickLabel',num2str(get(gca,'XTick').'))
set(gca,'YScale','log')
set(gca,'YTickLabel',num2str(get(gca,'YTick').'))
grid on

Еще лучше, у вас нет реальной причины устанавливать здесь XTickLabel вручную. Если вы измените XTick местоположения, метки будут автоматически обновлены, чтобы отразить новые местоположения.

line(contrast2*100, RNorm2,'color','black');
hold on
scatter (contrast2*100, RNorm2,'y','filled');
set(gca, 'XScale', 'log', ...
         'XTick', [1 10 20 50 100], ...
         'YScale', 'log')
person Suever    schedule 26.03.2016