Как построить график функции в матлабе
Построение графиков функций
Здравствуйте! В этой статье мы разберем построение графиков на MATLAB для различных математических функций, а также научимся выводить несколько графиков одновременно.
Где прописывать код
Графики MATLAB
Построение графиков функций в MATLAB можно реализовать разными способами, например, через plot или polar, с полным списком можете ознакомиться здесь.
Но сейчас речь пойдёт о функции ezplot.
Разберём такой пример:
Открываем скрипт и пишем нехитрый код:
Вывод:
На этом примере мы видим, как работает функция ezplot(), где в качестве аргументов указывается функция без ‘y=’ и интервал значений в квадратных скобках. Чтобы построить два графика в одном окне используем hold on. А axis tight — устанавливает границы осей в диапазоне данных значений.
Разберём ещё один:
Его скорее всего проще записать в компилятор напрямую.
Давайте ещё один:
И последний:
В данном случае мы указали границы оси с помощью axis от -π до π.
Если остались вопросы по поводу построения графиков функций в MATLAB, то обязательно пишите в комментариях, ответим.
Строим графики в MATLAB
Первая и самая часто встречающаяся функция это plot(. ), параметры умышленно не пишу, сейчас будем в них разбираться.
Во-первых, стоит разделить реализации на две основные группы. Первая из них принимает два параметра plot(x, y), еслимы обозначим ось абсцисс за X, а ось ординат за Y, то наша функция последовательно наставит нам на координатной плоскости точек и единственным требованием к массивам х и у будет равенство их длин. Возьмем 4 случайные точки и построим их.
В итоге получаем следующую ломаную:
Массив ординат тот же, что и ранее, но результат уже другой.
Иногда автомасштабирование графика может нас неустроить и мы захотим свои пределы отображения по осям. Для примера я поставлю пределы по больше, чтобы было видно разницу.
Если нужно включить сетку, то можно воспользоваться командой grid on, за одно давайте сменим функцию на какую-нибудь более красивую.
Отмечу также, что можно занять несколько ячеек разметки одним графиком. Теперь вернемся к вопросу построения нескольких кривых в одних осях координат. Строить будем в одном окне сразу оба по этому применим subplot. Будем строить один под другим, соответственно у нас получится subplot(2, 1, 1) и subplot(2, 1, 2).
Первый метод это подставить в plot несколько пар значений plot(x1,y1,x2,y2) второй способ применить команду hold on. Посмотрим на код и результат его работы.
Вот и настал тот момент, когда возникает вопрос: «А что на Вашем графике есть что?», чтобы он не возникал давайте научимся подписывать графики, настраивать параметры линий, отображать «легенду». Про параметры линий я скажу пару слов отдельно, а все остальное покажу в коде и там же подробно прокомментирую.
При задании спецификации линий существует два типа нотаций укорченная и полная, например, цвет можно задать параметром ‘color’ или сокращенно первой буквой от названия цвета.
Отлично, с вопросом разобрались. Теперь построим все по красоте, а одну из линий нашпигуем по полной. Относительно предыдущего примера у нас появятся заголовки, подписи осей, параметры линий, а также на втором графике оставим только одну линию.
Отдельно скажу, что есть еще метод суперзаголовка, но похоже он в одном из тулбоксов и в чистом MATLAB не доступен.
Документация
Синтаксис
Описание
Чтобы построить набор координат, соединенных с методической точностью сегменты, задайте X и Y как векторы из той же длины.
Чтобы построить несколько наборов координат на том же наборе осей, задайте по крайней мере один из X или Y как матрица.
plot( X 1, Y 1, LineSpec 1. X n, Y n, LineSpec n) присваивает определенные стили линии, маркеры, и окрашивает к каждому x— y пару. Можно задать LineSpec для некоторого x— y пары и не используют его для других. Например, plot(X1,Y1,’o’,X2,Y2) задает маркеры для первого x— y пара, но не для второй пары.
Примеры
Построение графика
Построение нескольких графиков
Построение графика из матрицы
Задайте Y как матрица 4 на 4, возвращенная magic функция.
Постройте 2D график для данных Y MATLAB® строит график для каждого столбца матрицы как новый график, новой линией.
Определение стиля линии
Постройте три синусоиды с маленьким сдвигом фазы между каждой линией. Используйте стиль линии по умолчанию для первой линии. Задайте стиль пунктирной линии для второй линии и стиль точечной линии для третьей линии.
MATLAB® циклически повторяет цвет линии через порядок цвета по умолчанию.
Определение стиля линии, цвета и маркера
Постройте три синусоиды с маленьким сдвигом фазы между каждой линией. Используйте зеленую линию без маркеров для первой синусоиды. Используйте синюю пунктирную линию с круговыми маркерами для второй синусоиды. Используйте только голубые маркеры-звездочки для третьей синусоиды.
Отображение маркеров в определенных точках данных
Постройте график и маркеры отображения в каждой пятой точке данных путем определения символа маркера и установки MarkerIndices свойство как пара «имя-значение».
Определение ширины линии, размера маркера и цвета маркера
Постройте график и используйте LineSpec опция, чтобы задать пунктирную зеленую линию с квадратными маркерами. Используйте Name,Value пары, чтобы задать ширину линии, размер маркера и цвета маркера. Установите цвет обводки маркера на синий и выберите цвет поверхности маркера с помощью значения цвета RGB.
Добавление заголовка и подписей по осям
Графическое изображение длительности и определение формата метки деления
Задайте t как семь линейно расположил с интервалами duration значения между 0 и 3 минутами. Отобразите случайные данные на графике и задайте формат duration отметки деления с помощью ‘DurationTickFormat’ аргумент пары «имя-значение».
Задание осей для графика
Изменение линни после ее создания
Измените ширину первой линни, задав значение 2. Добавьте маркеры-звездочки во вторую линию. Используйте запись через точку, чтобы установить свойства.
Рисование окружности
Постройте круг, сосредоточенный в точке (4,3) с радиусом, равным 2. Используйте axis equal для задания одинаковых маштабов по осям.
Входные параметры
x- в виде скаляра, вектора или матрицы. Размер и форма X зависит от формы ваших данных и типа графика, который вы хотите создать. Эта таблица описывает наиболее распространенные ситуации.
Задайте X и Y как скаляры и включают маркер. Например:
Задайте X и Y как любая комбинация строки или вектор-столбцы той же длины. Например:
Задайте последовательные пары X и Y векторы. Например:
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration
y- в виде скаляра, вектора или матрицы. Размер и форма Y зависит от формы ваших данных и типа графика, который вы хотите создать. Эта таблица описывает наиболее распространенные ситуации.
Задайте X и Y как скаляры и включают маркер. Например:
Задайте X и Y как любая комбинация строки или вектор-столбцы той же длины. Например:
Задайте последовательные пары X и Y векторы. Например:
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration
LineSpec — Стиль линии, маркер и цвет
вектор символов | строка
Стиль линии, цвет и маркер задается как символ или строка символов. Символы могут появиться в любом порядке. Вы не должны задавать все три характеристики (стиль линии, маркер и цвет). Например, если вы не используете стиль линии и задаете маркер, затем график показывает только маркер и никакую линию.
Пример: ‘—or’ красная пунктирная линия с круговыми маркерами
Название цвета | Краткое название | Триплет RGB | Внешний вид | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
‘red’ | ‘r’ | [1 0 0] |
Название цвета | Краткое название | Триплет RGB | Шестнадцатеричный цветовой код | Внешний вид | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
‘red’ | ‘r’ | [1 0 0] | ‘#FF0000’ |
Триплет RGB | Шестнадцатеричный цветовой код | Внешний вид |
---|---|---|
[0 0.4470 0.7410] | ‘#0072BD’ | |
‘none’ | Никакая линия | Никакая линия |
LineWidth ‘LineWidth’
0.5 (значение по умолчанию) | положительное значение
Ширина линии в виде положительного значения в точках, где 1 точка = 1/72 дюйма. Если у линии есть маркеры, ширина линии также влияет на края маркера.
Ширина линии не может быть более тонкой, чем ширина пикселя. Если вы устанавливаете ширину линии на значение, которое меньше ширины пикселя в вашей системе, отображения линии как один пиксель шириной.
Символ маркера в виде одного из значений перечислен в этой таблице. По умолчанию объект не отображает маркеры. Определение символа маркера добавляет маркеры в каждой точке данных или вершине.
MarkerIndices — Индексы точек данных, в которых можно отобразить маркеры
1:length(YData) (значение по умолчанию) | вектор из положительных целых чисел | скалярное положительное целое число
Индексы точек данных, в которых можно отобразить маркеры в виде вектора из положительных целых чисел. Если вы не задаете индексы, то MATLAB отображает маркер в каждой точке данных.
Примечание
Чтобы видеть маркеры, необходимо также задать символ маркера.
Пример: plot(x,y,’-o’,’MarkerIndices’,[1 5 10]) отображает круговой маркер во-первых, пятые, и десятые точки данных.
Пример: plot(x,y,’-x’,’MarkerIndices’,1:3:length(y)) отображает перекрестный маркер каждые три точки данных.
Пример: plot(x,y,’Marker’,’square’,’MarkerIndices’,5) отображения один квадратный маркер в пятой точке данных.
Для пользовательского цвета задайте триплет RGB или шестнадцатеричный цветовой код.
Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.
Название цвета | Краткое название | Триплет RGB | Шестнадцатеричный цветовой код | Внешний вид | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
‘red’ | ‘r’ | [1 0 0] | ‘#FF0000’ |
Триплет RGB | Шестнадцатеричный цветовой код | Внешний вид | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[0 0.4470 0.7410] | ‘#0072BD’ |
Название цвета | Краткое название | Триплет RGB | Шестнадцатеричный цветовой код | Внешний вид | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
‘red’ | ‘r’ | [1 0 0] | ‘#FF0000’ |
Триплет RGB | Шестнадцатеричный цветовой код | Внешний вид | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[0 0.4470 0.7410] | ‘#0072BD’ |
Значение DurationTickFormat | Описание |
---|---|
‘y’ | Номер точных лет фиксированной длины. Год фиксированной длины равен 365,2425 дням. |
‘d’ | Номер точных дней фиксированной длины. День фиксированной длины равен 24 часам. |
‘h’ | Номер часов |
‘m’ | Номер минут |
‘s’ | Номер секунд |
Пример: ‘DurationTickFormat’,’d’ значения длительности отображений в терминах дней фиксированной длины.
Чтобы отобразить длительность в форме цифрового таймера, задайте одно из этих значений.
Кроме того, можно отобразить до девяти цифр доли секунды путем добавления до девяти S ‘characters’.
Пример: ‘DurationTickFormat’,’hh:mm:ss.SSS’ отображает миллисекунды значения длительности к трем цифрам.
DurationTickFormat не свойство линии на графике. Необходимо установить формат метки деления с помощью аргумента пары «имя-значение» при создании графика. В качестве альтернативы установите формат с помощью xtickformat и ytickformat функции.
TickLabelFormat свойство линейки длительности хранит формат.
Советы
Используйте NaN и Inf специальные символы, чтобы создать пропуски на линии графика. Например, этот код строит первые два элемента, пропускает третий элемент и проводит другую линию с помощью последних двух элементов:
plot цвета использования и стили линии на основе ColorOrder и LineStyleOrder свойства осей. plot циклы через цвета с первым стилем линии. Затем это циклически повторяется через цвета снова с каждым дополнительным стилем линии.
Начиная в R2019b, можно изменить цвета и стили линии после графического вывода путем установки ColorOrder или LineStyleOrder свойства на осях. Можно также вызвать colororder функционируйте, чтобы изменить последовательность цветов для всех осей на рисунке.
Расширенные возможности
«Высокие» массивы
Осуществление вычислений с массивами, которые содержат больше строк, чем помещается в памяти.
Указания и ограничения по применению:
Поддерживаемые синтаксисы для длинных массивов X и Y :
- с чем бисмарк сравнивал колбасу
- бронзовые ручки для дверей