Деякі корисні засоби настройки графіків (plot) в matlab

Нещодавно, в черговий раз перевіряючи домашні роботи своїх студентів, я загорівся бажанням автоматизувати цей процес. Завдання полягало в складанні робочої таблиці девіації магнітного компаса і побудови кривої девіації.

Вхідними даними служили показання магнітного компаса (МК), синхронно спостерігаються показання гірокомпас (ГК), поправка ГК і значення магнітної відміни для району, в якому проходили виміру.

Всі дані були занесені в таблицю і розділені з 10 стовпців з вхідними даними і 25 рядків - значень вхідних даних для кожного з варіантів. Для зручності зчитування даних в MATLAB вони були записані в вигляді текстового файлу і імпортувалися в робочий простір за допомогою функції importdata.

За методикою розрахунків необхідно було обробити дані за допомогою декількох емпіричних формул для заповнення робочої таблиці девіації МК. Однак, основним і найбільш наочним результатом роботи є побудова кривої девіації МК.

Для побудови графіка була обрана функція plot, що має велику кількість параметрів настройки, які дозволяють отримати результат в потрібному вигляді. Був складений код:

І отриманий наступний графік:

Деякі корисні засоби настройки графіків (plot) в matlab

Розберемо код через підрядник, розглянемо які параметри можна вказувати для настройки відображення графіків.

Тут задаються вхідні дані для побудови графіка. Кількість значень по осі абсцис і по осі ординат має збігатися. За ці дані є векторами з 36 значеннями.

Власне, функція побудови графіка, в яку передаються дані і параметри. Крім очевидних вхідних даних параметром функції є тип відображається лінії, закодований трехсімвольним поєднанням. В даному випадку "b" - blue, колір лінії; "O" - вид маркера, яким позначаються точки графіка і "-" - тип лінії, в даному випадку - суцільна.

Нижче наводжу список параметрів для налаштування того, що лінії.

Маркер Колір лінії
c блакитний
m фіолетовий
y жовтий
r червоний
g зелений
b синій
w білий
k чорний

Маркер Тип лінії
- безперервна
- - штрихова
. пунктирна
-. штрих-пунктирна

Маркер Тип маркера
. крапка
+ знак «плюс»
* Знак «зірочка»
про коло
х знак «хрест»

Команда, якій включається сітка на графіку.

Підписи для графіка і відповідних осей. Тут "circ" кодування символу градуса.

Команда управління осями. В даному випадку виставлений параметр "auto" - автоматична розстановка осей. Тут-то мене і не влаштувала робота MATLAB, тому що автоматично вісі на пристиковуватися до крайніх значень графіка, а «додавали» зайвий простір по осі "X".

Деякі корисні засоби настройки графіків (plot) в matlab

За допомогою команди "help axis" я знайшов ще кілька варіантів параметра для осей, зокрема спробував параметр "tight", який повинен був пристиковувати кордону графіка до крайніх значень кривої. Однак результат і цього параметра мене не задовольнив тому результат виглядав наступним чином:

Деякі корисні засоби настройки графіків (plot) в matlab

Графік виглядає «затиснутим», до того ж «губляться» частини кривої знаходяться між максимальними значеннями.

Для отримання наочного результату довелося налаштувати вісь "X" окремо за допомогою наступних команд:

Остання функція задає граничні значення окремо для осі "X", що дозволило мені обмежити графік максимальними значеннями по даній осі.

І остання команда:

Дозволила налаштувати підписи і крок для осі "X". Функція "set" є досить загальною, її робота залежить від переданих параметрів. В даному випадку "gca" - означає, що параметри будуть встановлюватися для сітки графіка, "XTick" - означає, що буде управлятися підпис осі "X", а параметр "0: 45: 360" - задає мінімальне значення, крок і максимальне значення .

В результаті вийшов досить наочний графік кривої девіації, в порівнянні форми якого з формою графіка отриманого студентом можна було швидко оцінити правильність виконання роботи. Так само, завдяки завантаженню даних з файлу по всіх варіантах, з подальшим вибором останнього, змінювати доводилося тільки номер варіанта, щоб отримати результат.

Деякі корисні засоби настройки графіків (plot) в matlab

В закінчення хотів би зазначити корисність команди "help" - вона не тільки дозволяє отримати необхідну інформацію по функції або команді з командного рядка, але і зробити це значно швидше, ніж через пошук в довідці MATLAB.