Масштабирование осей без масштабирования
Я хотел бы изменить масштаб оси графика MATLAB без изменения базовых данных. Я не пытаюсь увеличить конкретную область сюжета.
В качестве примера, скажем, у меня есть ось X в миллиметрах. Мои американские коллеги могли бы предпочесть видеть результат в дюймах, но все кодируется в миллиметрах, и было бы чертовски сложно создавать новые данные на основе дюймов для всех элементов, которые я хотел бы построить. В идеале, я бы просто нарисовал все как обычно, и в паре строк кода, чтобы ось X была настроена на дюймы в конце.
Как мне это сделать?
Основной код для начала работы:
plot([1:2:100], [1:50])
xlabel('Millimetres')
ylabel('Something else')
% Magic happens
xlabel('Inches')
Примечание: 1 дюйм составляет 25,4 миллиметра.
1 ответ
Во-первых, в чем проблема деления ваших x-данных на 25.4?
x=[1:2:100]; y=[1:50];
plot(x/25.4,y)
Сделаю. Это также автоматически поместит позиции X-Ticks и метки в позиции с хорошими круглыми числами.
Если вы настаиваете, это преобразует текущие метки X-Tick из единиц измерения в мм:
xt = get(gca, 'XTick');
xlabels= get(gca, 'XTickLabel');
set(gca, 'XTick', xt, 'XTickLabel',num2str(str2num(xlabels)/25.4) );