Масштабирование осей без масштабирования

Я хотел бы изменить масштаб оси графика 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) );
Другие вопросы по тегам