
В MATLAB изменение масштаба графиков напрямую влияет на точность анализа данных и удобство их интерпретации. При работе с функцией plot, трёхмерной визуализацией или отображением экспериментальных результатов часто возникает необходимость увеличить область интереса. Использование инструментов масштабирования позволяет не только рассмотреть локальные детали, но и корректно оценить взаимосвязь между переменными.
Основным способом управления масштабом является применение функции axis, которая задаёт пределы осей в виде вектора: axis([xmin xmax ymin ymax]). Для трёхмерных графиков доступен расширенный вариант: axis([xmin xmax ymin ymax zmin zmax]). Такой подход гарантирует фиксированное отображение нужного диапазона данных без вмешательства мышью.
В интерактивном режиме масштабирование выполняется инструментами zoom и pan. Команда zoom on активирует увеличение колесом мыши, а функция zoom(factor) задаёт числовое значение коэффициента увеличения. Для точечной подстройки полезна опция pan, которая позволяет смещать видимую область без изменения размера графика.
При работе с несколькими осями в одной области построения рекомендуется использовать объектные свойства. Например, ax.XLim и ax.YLim дают возможность программно изменять масштаб конкретной оси, что особенно важно при сравнении нескольких наборов данных на одном рисунке.
Использование функции axis для задания диапазона координат

Функция axis позволяет явно задавать границы осей, управляя масштабом отображаемых данных. Основной синтаксис:
axis([xmin xmax ymin ymax])
Пример: ограничение графика синусоиды по оси X от 0 до 2π и по оси Y от -1.5 до 1.5:
x = 0:0.01:2*pi;
y = sin(x);
plot(x,y)
axis([0 2*pi -1.5 1.5])
Дополнительные режимы:
axis equal– одинаковый масштаб по осям X и Y, удобно для отображения окружностей и сфер.axis tight– автоматическая подгонка границ к минимальным и максимальным значениям данных.axis padded– аналогичноtight, но добавляется небольшой отступ вокруг графика.axis manual– фиксирование текущих границ, чтобы при добавлении новых графиков масштаб не менялся.
Для трёхмерных графиков используется расширенный синтаксис:
axis([xmin xmax ymin ymax zmin zmax])
Рекомендации:
- Используйте фиксированные границы при сравнении нескольких графиков для корректной визуальной оценки.
- Комбинируйте
axisс функциейxlim,ylim,zlim, если требуется управлять только одной осью. - При работе с анимацией применяйте
axis manual, чтобы избежать постоянных скачков масштаба.
Масштабирование графика с помощью команды xlim и ylim

Команды xlim и ylim позволяют вручную задать диапазон отображаемых данных по осям. Это удобно, когда необходимо выделить конкретный участок графика или скрыть лишние значения.
xlim([xmin xmax])– ограничивает область видимости по оси X.ylim([ymin ymax])– задаёт пределы по оси Y.
Пример:
x = -10:0.1:10;
y = sin(x);
plot(x,y)
xlim([-5 5])
ylim([-1 0.5])
В результате отображается только фрагмент функции синуса от -5 до 5 по оси X и от -1 до 0.5 по оси Y.
Полезные приёмы:
- Использовать
xlim autoиylim autoдля возврата к автоматическому выбору границ. - Применять
xlimиylimсовместно для точного выделения интересующей области. - В анимациях динамически изменять границы в цикле, чтобы создавать эффект «приближения» или «прокрутки» графика.
- Комбинировать с
axis tightдля подстройки границ к данным, а затем вручную корректировать диапазон.
Применение функции zoom для интерактивного изменения масштаба

Функция zoom позволяет увеличивать и уменьшать масштаб графиков без изменения исходных данных. При вызове zoom on активируется режим увеличения, где левая кнопка мыши приближает участок, а правая – отдаляет. Для временного отключения достаточно ввести zoom off.
Можно задать фиксированный коэффициент масштабирования: zoom(2) увеличит изображение в 2 раза, zoom(0.5) уменьшит его вдвое. Команда zoom reset возвращает область отображения к исходным границам.
Функция поддерживает назначение пользовательских обработчиков: zoom(fig,@mycallback) связывает изменение масштаба с пользовательской функцией, что удобно для автоматического обновления связанных графиков или аннотаций.
При работе с несколькими окнами рекомендуется указывать дескриптор фигуры: zoom(f), где f – результат figure. Это исключает конфликт при одновременной работе с разными графиками.
Для точного контроля над областью увеличения удобно использовать комбинацию с axis, задавая численные границы после применения zoom. Такой подход обеспечивает максимально точное исследование локальных особенностей данных.
Настройка масштаба через инструмент панелей Figure

В окне Figure панели управления содержат кнопку Zoom In (увеличение) и Zoom Out (уменьшение). Для точного изменения масштаба выберите Zoom In и выделите область на графике прямоугольником – MATLAB автоматически увеличит только выбранный участок. При повторных выделениях область продолжает сужаться.
Если требуется вернуться к исходному виду, используйте инструмент Zoom Out, выполняя клики по области графика до восстановления полного диапазона. Более быстрый способ – кнопка Home на панели Axes Toolbar, которая возвращает все оси к исходным границам.
Для управления масштабом колесо мыши также работает совместно с активным инструментом Zoom: прокрутка увеличивает или уменьшает график относительно позиции курсора. Это особенно удобно при анализе больших массивов данных с мелкими деталями.
В меню View → Zoom можно задать режим «фиксированного масштаба» по одной из осей, отключив увеличение по второй. Это полезно при исследовании функций, где важна точность по времени или частоте, но не по амплитуде.
Увеличение отдельной области графика с помощью gca и set
Для изменения масштаба не всего окна, а конкретной области осей, используется комбинация gca и set. Функция gca возвращает текущие оси, к которым можно применить команду set для точной настройки пределов отображения.
Например, если требуется увеличить участок графика между 2 и 5 по оси X и от 0 до 10 по оси Y, используется следующий код:
set(gca, 'XLim', [2 5], 'YLim', [0 10])
Установка свойств ‘XLim’ и ‘YLim’ вручную позволяет выделить нужный фрагмент данных без применения зумирования мышью. Такой способ удобен при автоматизации построений или сравнении нескольких графиков.
При необходимости масштабирования только одной оси можно изменить один из параметров, оставив другой без изменений, например:
set(gca, 'XLim', [0 20])
Для сохранения выбранных границ при последующем обновлении графика следует отключить автоматическое обновление осей:
set(gca, 'XLimMode', 'manual', 'YLimMode', 'manual')
Таким образом, использование gca совместно с set обеспечивает полный контроль над отображаемой областью графика и позволяет работать с конкретными диапазонами данных.
Изменение масштаба при работе с subplot

В MATLAB функция subplot(m,n,p) создает сетку из m строк и n столбцов, размещая график в позиции p. Для точного контроля масштаба каждого subplot используется свойство Position. Например, после создания subplot можно получить текущие координаты с помощью ax = gca; pos = ax.Position; и изменить их: ax.Position = [pos(1) pos(2) new_width new_height];.
Функция axis позволяет задавать диапазон координат конкретного subplot: axis([xmin xmax ymin ymax]). Это важно при сравнении графиков с разной амплитудой, чтобы все линии корректно отображались.
Для масштабирования по оси удобно использовать xlim и ylim. Например, xlim([0 10]) и ylim([-5 5]) устанавливают фиксированные границы для выбранного subplot без влияния на другие графики.
Если требуется пропорционально увеличить все subplot, применяется изменение Position всех осей одновременно. Для сетки 2×2 можно использовать цикл:
axesHandles = findall(gcf,'Type','axes');. Это увеличивает каждый subplot на 10%.
for k = 1:length(axesHandles)
pos = axesHandles(k).Position;
axesHandles(k).Position = [pos(1)*1.1 pos(2)*1.1 pos(3)*1.1 pos(4)*1.1];
end
Для динамического масштабирования, сохраняющего соотношение сторон, применяется axis equal. После команды subplot она гарантирует, что единичные отрезки по осям X и Y будут отображаться одинаково, предотвращая искажения формы графиков.
При использовании tight_layout аналога в MATLAB – tightfig или вручную с Position – устраняются лишние пустые поля между subplot, увеличивая полезную площадь графиков.
Комбинация Position, axis, xlim, ylim и циклического масштабирования обеспечивает точное управление размером и положением каждого subplot, позволяя создавать компактные и наглядные многопанельные графики.
Автоматическое подстраивание масштаба под данные командой axis tight

В MATLAB команда axis tight автоматически устанавливает границы осей графика так, чтобы они точно соответствовали диапазону данных. Это особенно полезно при работе с массивами, где значения имеют резкие перепады или неравномерное распределение.
Пример использования:
x = linspace(0,10,100);
y = sin(x).*exp(-0.1*x);
plot(x,y);
axis tight;
После выполнения axis tight оси X и Y будут ограничены минимальными и максимальными значениями массивов x и y, что исключает лишнее пространство вокруг графика.
Команда особенно эффективна в следующих случаях:
| Сценарий | Описание | Рекомендации |
|---|---|---|
| Нелинейные функции | Функции с резкими пиками или впадинами | Использовать axis tight после построения графика, чтобы избежать пустых областей |
| Динамические данные | Данные, обновляющиеся в цикле или при анимации | Вызывать axis tight внутри цикла после каждой итерации для корректного масштаба |
| Комбинированные графики | Несколько функций на одном графике с разными диапазонами | Применять axis tight после всех построений для унификации видимой области |
Важно учитывать, что axis tight не меняет соотношение сторон осей. Если требуется сохранить равные единицы по X и Y, следует дополнительно использовать axis equal после axis tight. Также команда не учитывает визуальные маркеры и толщину линий, что может привести к обрезанию краевых точек; в таких случаях рекомендуется добавить небольшой запас вручную, например:
axis([min(x)-0.1 max(x)+0.1 min(y)-0.1 max(y)+0.1]);
Использование axis tight ускоряет анализ графиков и делает визуализацию более точной при исследовании экспериментальных и симулированных данных.
Использование масштабирования при сохранении графика в файл

При использовании print важно указывать опцию -r для разрешения в точках на дюйм (DPI). Например, print('figure.png','-dpng','-r300') сохранит график в формате PNG с разрешением 300 DPI. Более высокое разрешение повышает качество деталей при увеличении масштаба.
Команда exportgraphics позволяет напрямую контролировать размер конечного файла через ‘Resolution’ и ‘ContentType’. Пример: exportgraphics(gca,'figure.pdf','Resolution',600) сохранит график в PDF с высоким разрешением векторной графики, что удобно для масштабирования без потери качества.
Для сохранения графика с масштабированием важно согласовать PaperPosition и Resolution, чтобы линии, метки и шрифты сохраняли пропорции. Изменение Position фигуры перед сохранением дополнительно контролирует визуальный масштаб элементов на изображении.
Если требуется экспорт нескольких графиков с одинаковым масштабом, рекомендуется использовать стандартные размеры PaperPosition и фиксированное разрешение. Это обеспечивает единообразие при публикации и сравнении данных.
Вопрос-ответ:
Как увеличить масштаб графика в MATLAB без изменения размеров окна?
Для увеличения масштаба графика можно использовать инструмент масштабирования встроенный в MATLAB. Достаточно выбрать значок лупы на панели инструментов графика или использовать команду zoom. Например, zoom(2) увеличит текущую область графика в 2 раза, а zoom(0.5) уменьшит. Такой способ позволяет детально рассмотреть определенные участки графика без изменения размеров самого окна.
Можно ли задать масштаб осей вручную для графика?
Да, MATLAB позволяет вручную задавать пределы осей с помощью команд xlim и ylim. Например, xlim([0 10]) задаст диапазон по оси X от 0 до 10, а ylim([-5 5]) установит пределы оси Y от -5 до 5. Этот метод удобен, если нужно сфокусироваться на конкретном диапазоне данных, не используя инструмент масштабирования мышью.
Как сделать масштабирование графика более точным при исследовании данных?
Для точного масштабирования можно использовать комбинацию команд zoom и axis. Например, zoom позволяет быстро увеличить область, а axis([xmin xmax ymin ymax]) задает точные границы осей. Также удобно использовать функцию pan для перемещения по графику после увеличения. Это помогает анализировать отдельные участки графика с высокой точностью, особенно при работе с плотными или сильно колеблющимися данными.
Можно ли увеличить масштаб графика через скрипт, чтобы это применялось автоматически при построении?
Да, масштаб можно установить через скрипт с помощью функций xlim, ylim и zoom. Например, после построения графика plot(x,y) можно добавить строки xlim([xmin xmax]) и ylim([ymin ymax]), чтобы задать нужный диапазон. Также можно вызвать zoom(2), чтобы увеличить масштаб. Такой подход удобен для повторного построения графиков с одинаковыми настройками без ручного вмешательства.
Есть ли способ увеличить масштаб графика и сохранить видимую область при сохранении в файл?
При сохранении графика в файл через saveas или exportgraphics масштаб можно сохранить, если предварительно задать пределы осей с помощью xlim и ylim. Если использовать только zoom, то при сохранении график может вернуться к исходным размерам осей. Поэтому рекомендуется сначала настроить оси, а затем сохранять изображение, чтобы видимая область совпадала с тем, что отображается на экране.
