Графики

Основы графики

Функция, заданная выражением

Для построения графика функции, заданной выражением в m-файле

% Файл-функция f.m
function res = f(x)
    res = sin(10*x)+2*x;

или при помощи анонимной функции

f = @(x) sin(10*x)+2*x;

используется функция fplot

fplot(f,[0 5]);
xlabel('x, c');
ylabel('f, м');
grid on;
title('График зависимости f от x');

fplot

Табличная функция

Для построения графиков табличных функций используется функция plot.

x = 0:0.05:5;
y = sin(10*x)+2*x;

Третьим аргументом функции plot можно передать строковую константу, описывающую свойства графика: цвет, тип маркера и тип линии:

plot(x,y,'r--');
plot(x,y,'k-.','LineWidth',2);
% размер шрифта и толщина линий  шкал
set(gca,'FontSize',14,'LineWidth',1.5);
% подписи осей с указанием размеров шрифтов
xlabel('x, c','FontSize',14);
ylabel('y, м','FontSize',14);
grid on;

Некоторые коды цветов, маркеров и типов линий приведены в таблице

Код цветаЦветКод маркераТип маркераКод линииТип линии
rкрасныйокружок-сплошная
gзеленый.точкапунктирная
bголубойsквадрат-.штрих-пунктирная
yжелтый*звездочка:пунктирная
kчерный^треугольник  

Для создания рисунка определенного размера можно использовать функцию figure с параметром position, который позволяет задать положение нижней левой точки окна рисунка и его ширину и высоту

x0 = 10; y0 = 10;
width = 500; height = 300;
figure('position',[x0, y0, width, height]);
x = 0:0.5:5;
y = sin(x);
plot(x,y);

Размер рисунка можно изменить после его построения, задав свойство position при помощи функции изменения свойств текущего рисунка set(gcf, ….)

x = 0:0.5:5;
y = sin(x);
plot(x,y);

x0 = 10; y0 = 10;
width = 500; height = 300;
set(gcf,'Position',[x0, y0, width, height]);

gcf это глобальная переменная-ссылка на выбранный объект figure.

Несколько графиков на одном рисунке

По умолчанию при нескольких вызовах функции plot на графике будет показана только последняя кривая, поскольку вызов функции plot удаляет предыдущий график. Чтобы изменить это поведение и показать на одном графике несколько кривых, необходимо использовать директиву hold on.

x  = 0:0.1:10;
y1 = sin(x);
y2 = cos(x);

plot(x, y1 , 'r-');
% "Удерживаем" предыдущий график
hold on;
% строим еще одну кривую (синим пунктиром)
plot(x, y2, 'b--');
% Выключаем "удержание" 
hold off;

fplot

На одном рисунке можно показать несколько графиков мозаикой. Для этого используется функция subplot. Предположим, что необходимо построить 4 графика.

Разбиваем рисунок на 4 ячейки 2x2 и строим график в первой ячейке (1,1)

subplot(2,2,1);
x  = linspace(0,2*pi,50); y1 = sin(x);
plot(x, y1,'r-','LineWidth',2)

Двигаемся справа налево, сверху вниз: первые два аргумента – число строк и столбцов, на которое разбит рисунок, третий аргумент – номер ячейки в котором будет строиться следующий график. Порядок нумерации ячеек не такой как у матрицы, а слева-направо и сверху-вниз.

subplot(2,2,2);
y2 = cos(x);
plot(x, y2,'g-','LineWidth',2);

Аналогично для оставшихся графиков во второй строке рисунка

subplot(2,2,3);
y3 = exp(x);
plot(x, y3,'b-','LineWidth',2);

subplot(2,2,4);
y4 = x.^2+2*x;
plot(x, y3,'y-','LineWidth',2);

subplot

Столбчатые диаграммы

x = 0:0.5:5;
y = sin(x);
bar(x,y)

Круговые диаграммы

x = [1, 2, 3, 4];
pie (x);

Второй аргумент – логический массив, указывающий на необходимость изображения соответствующего сектора отдельно от круговой диаграммы.

x = [1, 2, 3, 4];
y = [0, 0, 1, 0];
pie (x);

Если сумма элементов массива данных больше или равна единице, то эта сумма принимается за 100%, в противном случае строится диаграмма с пропущенным сектором.

x = [0.1 , 0.2 , 0.5];
pie(x);

Гистограммы