Некоторые полезные средства настройки графиков (plot) в MATLAB
Недавно, в очередной раз проверяя домашние работы своих студентов, я загорелся желанием автоматизировать этот процесс. Задание состояло в составлении рабочей таблицы девиации магнитного компаса и построения кривой девиации.
Входными данными служили показания магнитного компаса (МК), синхронно наблюдаемые показания гирокомпаса (ГК), поправка ГК и значение магнитного склонения для района, в котором проходили измерения.
Все данные были занесены в таблицу и разделены из 10 столбцов с входными данными и 25 строк – значений входных данных для каждого из вариантов. Для удобства считывания данных в MATLAB они были записаны в виде текстового файла и импортировались в рабочее пространство с помощью функции importdata.
По методике расчетов необходимо было обработать данные с помощью нескольких эмпирических формул для заполнения рабочей таблицы девиации МК. Однако, основным и наиболее наглядным результатом работы является построение кривой девиации МК.
Для построения графика была выбрана функция plot, имеющая большое количество параметров настройки, которые позволяют получить результат в нужном виде. Был составлен код:
И получен следующий график:

Разберем код построчно, рассмотрим какие параметры можно указывать для настройки отображения графиков.
Здесь задаются входные данные для построения графика. Количество значений по оси абсцисс и по оси ординат должно совпадать. По эти данные являются векторами с 36 значениями.
Собственно, функция построения графика, в которую передаются данные и параметры. Помимо очевидных входных данных параметром функции является тип отображаемой линии, закодированный трехсимвольным сочетанием. В данном случае “b” – blue, цвет линии; “o” – вид маркера, которым обозначаются точки графика и “-” – тип линии, в данном случае – сплошная.
Ниже привожу список параметров для настройки отображаемой линии.
Маркер Цвет линии
c голубой
m фиолетовый
y желтый
r красный
g зеленый
b синий
w белый
k черный
Маркер Тип линии
— непрерывная
— — штриховая
: пунктирная
-. штрих-пунктирная
Маркер Тип маркера
. точка
+ знак «плюс»
* знак «звездочка»
о круг
х знак «крест»
Команда, которой включается сетка на графике.
Подписи для графика и соответствующих осей. Здесь “\circ” кодировка символа градуса.
Команда управления осями. В данном случае выставлен параметр “auto” – автоматическая расстановка осей. Здесь-то меня и не устроила работа MATLAB, т.к. автоматически оси не пристыковывались к крайним значениям графика, а «добавляли» лишнее пространство по оси “X”.

С помощью команды “help axis” я нашел еще несколько вариантов параметра для осей, в частности попробовал параметр “tight”, который должен был пристыковывать границы графика к крайним значениям кривой. Однако результат и этого параметра меня не удовлетворил т.к. результат выглядел следующим образом:

График выглядит «зажатым», к тому же «теряются» части кривой находящиеся между максимальными значениями.
Для получения наглядного результата пришлось настроить ось “X” отдельно с помощью следующих команд:
Последняя функция задает граничные значения отдельно для оси “X”, что позволило мне ограничить график максимальными значениями по данной оси.
И последняя команда:
Позволила настроить подписи и шаг для оси “X”. Функция “set” является достаточно общей, ее работа зависит от передаваемых параметров. В данном случае “gca” – означает, что параметры будут устанавливаться для сетки графика, “ XTick ” – означает, что будет управляться подпись оси “X”, а параметр “0:45:360” – задает минимальное значение, шаг и максимальное значение.
В результате получился достаточно наглядный график кривой девиации, по сравнению формы которого с формой графика полученного студентом можно было быстро оценить правильность выполнения работы. Так же, благодаря загрузке данных из файла по всем вариантам, с дальнейшим выбором последнего, изменять приходилось только номер варианта, чтобы получить результат.

Надеюсь, что эта статья будет полезной не только для начинающих MATLAB, но и для опытных пользователей.
В окончании хотел бы отметить полезность команды “help” – она не только позволяет получить необходимую информацию по функции или команде из командной строки, но и сделать это значительно быстрее, чем через поиск в справке MATLAB.
Gca matlab что это
Get current axes handle
Description
h = gca returns the handle to the current axes for the current figure. If no axes exists, MATLAB creates one and returns its handle. You can use the statement
if you do not want MATLAB to create an axes if one does not already exist.
The current axes is the target for graphics output when you create axes children. Graphics commands such as plot , text , and surf draw their results in the current axes. Changing the current figure also changes the current axes.
Документация
ax = gca возвращает текущую систему координат (или автономная визуализация) в текущей фигуре. Используйте ax получить и установить свойства текущей системы координат. Если нет никаких осей или графиков в текущей фигуре, то gca создает объект Осей декартовой системы координат.
Примеры
Specify Properties для текущей системы координат

Установите размер шрифта, направление метки деления, длину метки деления и пределы оси Y для текущей системы координат. Используйте gca относиться к текущей системе координат.

Выходные аргументы
ax CurrentAxes
Axes возразите | PolarAxes возразите | GeographicAxes возразите | автономная визуализация
Текущая система координат, возвращенная как Axes объект, PolarAxes объект, GeographicAxes объект или автономная визуализация, такая как a heatmap .
Больше о
CurrentAxes
Текущая система координат является целевым объектом по умолчанию для многих графических команд, такой как plot , title , и xlim . Следующие типы объектов могут стать текущей системой координат. Как правило, это — последний из этих объектов, который создан, нажат или построен в.
Автономная визуализация, которая является графиком, спроектированным для особых целей, которые работают независимо из других графиков. Например, a heatmap автономная визуализация для наблюдения взаимодействия между двумя переменными в табличных данных.
CurrentAxes свойство фигуры хранит свою текущую систему координат.
Советы
Взаимодействие с пользователем может изменить текущую систему координат или график. Лучше присвоить оси или график к переменной, когда вы создаете его вместо того, чтобы использовать gca .
Изменение текущей фигуры также изменяет текущую систему координат или график.
Установите свойства осей после графического вывода, поскольку некоторые функции построения графика сбрасывают свойства осей.
Чтобы получить доступ к текущей системе координат или графику, не обеспечивая создание Осей декартовой системы координат, используйте запись через точку, чтобы запросить фигуру CurrentAxes свойство. MATLAB ® возвращает пустой массив, если нет никакой текущей системы координат.
Смотрите также
Функции
- axes | cla | gcf | findobj | get | set | shg
Свойства
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
© 1994-2021 The MathWorks, Inc.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.