Оформление графиков (plot) в Matlab

Больше
19 окт 2023 08:30 - 20 окт 2023 08:23 #133 от roman
Давайте рассмотрим, как можно оформить график в Матлаб.
Чтобы построить график изменения переменой достаточно вызвать функцию plot(x,y). Данная команда строит график элементов одномерного массива Y в зависимости от массива X.

Code:
x = linspace(0,40,101); y = sin(x); plot(x,y) grid on


В итоге мы получим следующий график изменения переменной:
 
Последнее редактирование: 20 окт 2023 08:23 пользователем roman.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
20 окт 2023 08:16 - 20 окт 2023 08:25 #134 от roman
Если вы посмотрите график, то увидите, что по оси Х, программа Матлаб при построении графика поставило 8 меток со значениями: [0,5,10,15,20,25,30,35,40]
Это отображение графика можно изменить.

1. Вы хотите увеличить или уменьшить количество делений на графике по оси х.
Для этого нужно использовать команду xticks(ticks), которая позволяет задать вдоль оси X необходимые метки значения.
Например, Вы хотите оставить 4 метки: [0,10,20,30,40].
Для этого в Матлабе вводите следующую команду: xticks([0,10,20,30,40])
В результате вы получите следующий график:
 
2. Вам нужно подписать метки на графике с помощью символов 
Для этого нужно использовать команду xticklabels(labels), которая устанавливает для меток деления оси X соответствующее соответствие векторов символов.
Например, Вы хотите подписать график: [0,синий,красный,желтый,зеленый].
Для этого в Матлабе вводите следующую команду: xticklabels({0,"синий","красный","желтый","зеленый"})
В результате вы получите следующий график:
 
Таким образом, Метки (xticks(ticks)) — это метки по оси Х, которые вы видите рядом с каждой отметкой. 
Значения меток (xticklabels(labels)) — это места вдоль оси X , где появляются отметки с подписями. 
 
Аналогично, можно изменить "метки" и "значения меток" по оси y: yticks() и yticklabels()
 
Последнее редактирование: 20 окт 2023 08:25 пользователем roman.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
20 окт 2023 13:30 - 22 окт 2023 21:56 #135 от roman
Попробуем автоматизировать процесс увеличения или уменьшения количества делений на графике по оси х.
Допустим у нас есть 100 значений X  для которых выполнен расчет значений Y.
Нужно построить график так, чтобы по оси Х отложить 4 деления и деления подписать порядковым номером значения.
 
Code:
x = linspace(0,40,101); y = sin(x); plot(x,y) grid on %------------------------- % Входные параметры: %1.Вектор столбец var_X[] var_X=x'; % ' - чтобы был вектор столбец (!) %2.Количество точек на оси X: параметр num_x_axes num_x_axes=4; % число кроме 0 %3.Алгоритм: [sizaA,sizeB]=size(var_X); delta_x_axes=floor(sizaA/num_x_axes); % floor() - округление до целого наименьшего значения axes_x_axes=[]; for i=1:num_x_axes axes_x_axes(i,1)=1+(i-1)*delta_x_axes; axes_x_axes(i,2)=var_X(1+(i-1)*delta_x_axes,1); end axes_x_axes(i+1,1)=sizaA; axes_x_axes(i+1,2)=var_X(sizaA,1); %Итог: получен масив переменных axes_x_axes[] из первоначального вектор-столбца %------------------------- xticks(axes_x_axes(:,2)); %Наносим необходимое количество делений на график в нужных местах xticklabels(axes_x_axes(:,1)); %Деление обозначаем через порядковый номер значения в массиве.



В результате получаем следующий график
 
Когда это Вам может пригодится, например по оси Х нужно проставить Даты или добавить на ось Х произошедшие события на график.
Последнее редактирование: 22 окт 2023 21:56 пользователем roman.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
20 окт 2023 13:36 - 20 окт 2023 13:37 #136 от roman
Какие Вы еще знаете команды в Matlab на изменения оформления графика plot()

% Перевести по оси Y значения из экспоненциальной записи в обычную
ax.YAxis.Exponent = 0;

%Поворот значений на угол
xtickangle(90)
ytickangle(0)

%ограничения выводимый на график информации
xlim([0 40])
ylim([0 40])

% Отключить/включить рамку (прямоугольник вокруг графика)
box off
box on

% Включить/отключить сетку
grid on
grid off

% включить отключить часть сетки в зависимости от оси графика
ax = gca;
ax.XGrid = 'off';
ax.YGrid = 'on';
Последнее редактирование: 20 окт 2023 13:37 пользователем roman.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Работает на Kunena форум
Пользовательское соглашение.

По всем возникшим вопросам Вы можете обратиться к администрации сайта по электронной почте (administrator@simenergy.ru) или с помощью формы обратной связи.

Статистика сайта:
Яндекс.Метрика