Progress-servis55.ru

Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Точка в matlab

Точка в matlab

2. Оформление графиков функций.

Сейчас рассмотрим ряд вопросов, связанных с внешним видом графиков функций — цветом и стилем линий, которым проведены сами графики, а также различными надписями в пределах графического окна.

Например, следущие команды

x = 0 : 0.1 : 3; y = sin( x );

plot( x, y, ‘r-‘, x, y, ‘ko’ )

позволяют придать графику вид красной сплошной линии, на которой в дискретных

вычисляемых точках проставляются чёрные окружности. Здесь функция plot дважды строит график одной и той же функции, но в двух разных стилях. Первый из этих стилей отмечен как ‘r-‘, что означает проведение линии красным цветом (буква r), а штрих означает проведение сплошной линии. Второй стиль, помеченный как ‘ko’ означает проведение чёрным цветом (буква k) окружностей (буква o) на месте вычисляемых точек.

В общем случае, функция

plot( x1, y1, s1, x2, y2, s2, )

позволяет объединить несколько графиков функций y1(x1), y2(x2), , проведя их со стилями s1, s2,

В случае функции вида

plot( x1, y1, s1, x1, y1, s2 )

мы можем провести линию графика единственной функции y1(x1) одним цветом, а точки на нём (вычисляемые точки) — другим цветом.

Стили s1, s2, задаются в виде набора трёх символьных маркеров, заключенных в одиночные кавычки. Первый (не обязательно по порядку) из этих маркеров задаёт тип линии:

МаркерТип линии
непрерывная
штриховая
:пунктирная
-.штрих-пунктирная

Второй маркер задаёт цвет:

МаркерЦвет линии
cголубой
mфиолетовый
yжёлтый
rкрасный
gзелёный
bсиний
wбелый
kчёрный

Последний маркер задаёт тип проставляемых «точек»:

МаркерТип точки
.точка
+плюс
*звёздочка
oкружок
xкрестик

Можно указывать не все три маркера. Тогда используются необходимые маркеры, установленные «по умолчанию». Порядок, в котором указываются маркеры, не является существенным, то есть ‘r+-‘ и ‘-+r’ приводят к одинаковому результату.

Если в строке стиля поставить маркер типа точки, но не проставить маркер на тип линии, то тогда отображаются только вычисляемые точки, а непрерывной линией они не соединяются.

Наиболее мощным способом оформления графиков функций (и выполнения других графических работ) является дескрипторный метод, полное изучение которого относится к так называемой низкоуровневой графике системы MATLAB и выходит за рамки настоящего пособия. Мы, однако, приведём сейчас (и позже) некоторые простые примеры.

Выше мы оформляли график функции sin с помощью непрерывной красной линии и чёрных кружков. Теперь попробуем ограничиться лишь непрерывной линией, но очень толстой. Как это можно сделать? Вот простое решение на базе дескрипторной графики:

x = 0 : 0.1 : 3; y = sin( x );

hPlot = plot( x, y );

set( hPlot, ‘LineWidth’, 7 );

Функция plot через опорные (вычисленные) точки с координатами x, y проводит отрезки прямых линий. Прямые линии в системе MATLAB представляют собой графические объекты типа Line. Эти объекты имеют огромное число свойств и характеристик, которые можно менять. Доступ к этим объектам осуществляется по их описателям (дескрипторам; handles).

Описатель объекта Line, использованного для построения нашего графика, возвращается функцией plot. Мы его запоминаем для дальнейшего использования в переменной hPlot. Затем этот описатель предлагается функции set для опознания конкретного графического объекта. Именно для такого опознанного объекта функция set изменяет характеристики, которые указаны в других аргументах при вызове функции set. В нашем примере мы указали свойство ‘LineWidth’ (толщина линии), для которого задали новое значение 7 (а по умолчанию — 0.5). В результате получается следующая картина:

Текущее значение любого параметра (атрибута; характеристики) графического объекта можно узнать с помощью функции get. Например, если после получения показанного на рисунке графика ввести и исполнить команду

w )

то для переменной width будет получено значение 7.

Теперь от оформления непосредственно линий перейдём к оформлению осей системы координат, к надписям на осях и так далее. MATLAB выбирает пределы на горизонтальной оси равными указанным для независимой переменной. Для зависимой переменной по вертикальной оси MATLAB вычисляет диапазон изменения значений функции. Затем этот вычисленный диапазон приписывается вертикальной оси системы координат, так что график функции оказывается как бы вписанным в прямоугольник.

Если мы хотим отказаться от этой особенности масштабирования при построении графиков в системе MATLAB, то мы должны явным образом навязать свои пределы изменения переменных по осям координат. Это делается с помощью функции

axis( [ xmin, xmax, ymin, ymax ] )

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

axis( [ 1.5, 2.5, 0.5, 2 ] )

чтобы получше разглядеть вершину синусоиды:

Чаще всего этот приём увеличения масштаба изображения применяют при графическом решении уравнений с тем, чтобы получить более высокую точность приближения к корню.

Читать еще:  Matlab оформление графиков

Теперь изменим количество числовых отметок на осях. Их может показаться недостаточно (на горизонтальной оси последнего рисунка их всего три — для значений 1.5 , 2 и 2.5).

Изменить отметки на осях координат можно с помощью функции set, обрабатывающей графический объект Axes. Это объект, который содержит оси координат и белый прямоугольник, внутри которого и проводится сам график функции. Для получения описателя такого объекта применяют функцию gca, которую вызывают без параметров.

В итоге, следующий фрагмент кода

hAxes = gca;

set( hAxes, ‘xtick’, [ 1.5, 1.75, 2.0, 2.25, 2.5 ] )

выполняющийся после построения графика, устанавливает новые метки на горизонтальной оси координат (пять штук).

Для проставления различных надписей на полученном рисунке применяют функции xlabel, ylabel, title и text. Функция xlabel предназначена для проставления названия горизонтальной оси, функция ylabel — то же для вертикальной оси (причём эти надписи ориентированы вдоль осей координат).

Если требуется разместить надпись в произвольном месте рисунка — применяем функцию text:

text( x, y, ‘some text’)

Общий заголовок для графика проставляется функцией title. Кроме того, используя команду

grid on

можно нанести измерительную сетку на всю область построения графика. Применяя все эти средства

title( ‘Function sin(x) graph’ );

xlabel( ‘x coordinate’ ); ylabel( ‘sin(x)’ );

text( 2.1, 0.9, ‘leftarrowsin(x)’ ); grid on;

придаём графику функции следующий вид:

Надпись функцией text помещается, начиная от точки с координатами, указанными первыми двумя аргументами. Специальные символы вводятся внутри текста после символа («обратная косая черта»). В примере мы ввели таким образом специальный символ «стрелка влево». Обозначения для специальных символов совпадают с таковыми в системе подготовки научных текстов TeX.

Подготовка графиков в MatLab

В написании научных статей немалую часть времени занимает подготовка иллюстраций, графиков и диаграмм. Хочу поделиться некоторыми мыслями и примерами того, как можно ускорить этот процесс. Материал пригодиться тем, кто пользуется системой MatLab.

MatLab предоставляет широкие возможности по отображению графической информации в виде графиков, диаграмм, и т.п. Однако не всегда получаемые по умолчанию иллюстрации удовлетворяют требованиям оформления статей. Для этого в системе MatLab существует множество настроек. И чтобы ускорить подготовку иллюстраций предлагаю воспользоваться несколькими строчками кода, которые помогут помочь настроить отображение графиков.

Прежде всего, необходимо настроить шрифты, которые будут использоваться для вывода значений осей и надписей на графиках, что также помогает в случаях неправильного отображения надписей на русском языке:

Затем необходимо настроить размер графика и его положение на экране, например, с отображением на весь экран:

При необходимости вставляем название графика:

Далее можно включить построение нескольких графиков в одном окне, c использованием тех же осей и свойств графика:

Строим графики с определенным цветом, стилем и толщиной линии:

Вставляем легенду в график с определенным положением на рисунке, например справа внизу:

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

Чтобы не изменять вручную все значения подписей данных осей через меню графика,

Код «прореживает» подписи осей x и y, а также исправляет точки на запятые в подписях на оси y. Для других осей необходимо повторить аналогичные процедуры.

И в заключении отобразим линии координатной сетки:

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

Выполним с заранее подготовленными данными.

В результате получаем вот такой график:

По умолчанию MatLab отображает греческую букву «фи» как в кириллице «ф». Одним из способов отобразить привычную греческую букву «фи» с петлеобразным начертанием, является выбор специального шрифта c греческими буквами. Скачиваем, например, шрифт Greek Normal отсюда и устанавливаем. Просмотрев шрифт Greek в таблице символов, замечаем, что в этом шрифте буква «фи» существует в двух вариантах, причем для кода латинской «f» получим тот же результат что и в MatLab в виде «ф», а для кода латинской «j» должен быть получен требуемый результат.

В результате использования приведенного кода для построения графиков с помощью системы MatLab удалось:

  • Решить проблему с некорректным отображением кириллических шрифтов;
  • Автоматически заменить разделитель целой и дробной части числа с точки на запятую в графике;
  • Отобразить греческую букву фи в петлеобразном начертании.

PS Если кто-то знает простой способ отобразить символ греческой буквы «фи» с кодом unicode-03С6 в графиках MatLab, напишите пожалуйста в комментариях.

UPD Еще один способ, подсказанный в комментариях, для отображения «фи» с петлеобразным начертанием:

Точка в matlab

2. Оформление графиков функций.

Сейчас рассмотрим ряд вопросов, связанных с внешним видом графиков функций — цветом и стилем линий, которым проведены сами графики, а также различными надписями в пределах графического окна.

Читать еще:  Matlab min max

Например, следущие команды

x = 0 : 0.1 : 3; y = sin( x );

plot( x, y, ‘r-‘, x, y, ‘ko’ )

позволяют придать графику вид красной сплошной линии, на которой в дискретных

вычисляемых точках проставляются чёрные окружности. Здесь функция plot дважды строит график одной и той же функции, но в двух разных стилях. Первый из этих стилей отмечен как ‘r-‘, что означает проведение линии красным цветом (буква r), а штрих означает проведение сплошной линии. Второй стиль, помеченный как ‘ko’ означает проведение чёрным цветом (буква k) окружностей (буква o) на месте вычисляемых точек.

В общем случае, функция

plot( x1, y1, s1, x2, y2, s2, )

позволяет объединить несколько графиков функций y1(x1), y2(x2), , проведя их со стилями s1, s2,

В случае функции вида

plot( x1, y1, s1, x1, y1, s2 )

мы можем провести линию графика единственной функции y1(x1) одним цветом, а точки на нём (вычисляемые точки) — другим цветом.

Стили s1, s2, задаются в виде набора трёх символьных маркеров, заключенных в одиночные кавычки. Первый (не обязательно по порядку) из этих маркеров задаёт тип линии:

МаркерТип линии
непрерывная
штриховая
:пунктирная
-.штрих-пунктирная

Второй маркер задаёт цвет:

МаркерЦвет линии
cголубой
mфиолетовый
yжёлтый
rкрасный
gзелёный
bсиний
wбелый
kчёрный

Последний маркер задаёт тип проставляемых «точек»:

МаркерТип точки
.точка
+плюс
*звёздочка
oкружок
xкрестик

Можно указывать не все три маркера. Тогда используются необходимые маркеры, установленные «по умолчанию». Порядок, в котором указываются маркеры, не является существенным, то есть ‘r+-‘ и ‘-+r’ приводят к одинаковому результату.

Если в строке стиля поставить маркер типа точки, но не проставить маркер на тип линии, то тогда отображаются только вычисляемые точки, а непрерывной линией они не соединяются.

Наиболее мощным способом оформления графиков функций (и выполнения других графических работ) является дескрипторный метод, полное изучение которого относится к так называемой низкоуровневой графике системы MATLAB и выходит за рамки настоящего пособия. Мы, однако, приведём сейчас (и позже) некоторые простые примеры.

Выше мы оформляли график функции sin с помощью непрерывной красной линии и чёрных кружков. Теперь попробуем ограничиться лишь непрерывной линией, но очень толстой. Как это можно сделать? Вот простое решение на базе дескрипторной графики:

x = 0 : 0.1 : 3; y = sin( x );

hPlot = plot( x, y );

set( hPlot, ‘LineWidth’, 7 );

Функция plot через опорные (вычисленные) точки с координатами x, y проводит отрезки прямых линий. Прямые линии в системе MATLAB представляют собой графические объекты типа Line. Эти объекты имеют огромное число свойств и характеристик, которые можно менять. Доступ к этим объектам осуществляется по их описателям (дескрипторам; handles).

Описатель объекта Line, использованного для построения нашего графика, возвращается функцией plot. Мы его запоминаем для дальнейшего использования в переменной hPlot. Затем этот описатель предлагается функции set для опознания конкретного графического объекта. Именно для такого опознанного объекта функция set изменяет характеристики, которые указаны в других аргументах при вызове функции set. В нашем примере мы указали свойство ‘LineWidth’ (толщина линии), для которого задали новое значение 7 (а по умолчанию — 0.5). В результате получается следующая картина:

Текущее значение любого параметра (атрибута; характеристики) графического объекта можно узнать с помощью функции get. Например, если после получения показанного на рисунке графика ввести и исполнить команду

w )

то для переменной width будет получено значение 7.

Теперь от оформления непосредственно линий перейдём к оформлению осей системы координат, к надписям на осях и так далее. MATLAB выбирает пределы на горизонтальной оси равными указанным для независимой переменной. Для зависимой переменной по вертикальной оси MATLAB вычисляет диапазон изменения значений функции. Затем этот вычисленный диапазон приписывается вертикальной оси системы координат, так что график функции оказывается как бы вписанным в прямоугольник.

Если мы хотим отказаться от этой особенности масштабирования при построении графиков в системе MATLAB, то мы должны явным образом навязать свои пределы изменения переменных по осям координат. Это делается с помощью функции

axis( [ xmin, xmax, ymin, ymax ] )

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

axis( [ 1.5, 2.5, 0.5, 2 ] )

чтобы получше разглядеть вершину синусоиды:

Чаще всего этот приём увеличения масштаба изображения применяют при графическом решении уравнений с тем, чтобы получить более высокую точность приближения к корню.

Теперь изменим количество числовых отметок на осях. Их может показаться недостаточно (на горизонтальной оси последнего рисунка их всего три — для значений 1.5 , 2 и 2.5).

Изменить отметки на осях координат можно с помощью функции set, обрабатывающей графический объект Axes. Это объект, который содержит оси координат и белый прямоугольник, внутри которого и проводится сам график функции. Для получения описателя такого объекта применяют функцию gca, которую вызывают без параметров.

Читать еще:  Matlab что значит

В итоге, следующий фрагмент кода

hAxes = gca;

set( hAxes, ‘xtick’, [ 1.5, 1.75, 2.0, 2.25, 2.5 ] )

выполняющийся после построения графика, устанавливает новые метки на горизонтальной оси координат (пять штук).

Для проставления различных надписей на полученном рисунке применяют функции xlabel, ylabel, title и text. Функция xlabel предназначена для проставления названия горизонтальной оси, функция ylabel — то же для вертикальной оси (причём эти надписи ориентированы вдоль осей координат).

Если требуется разместить надпись в произвольном месте рисунка — применяем функцию text:

text( x, y, ‘some text’)

Общий заголовок для графика проставляется функцией title. Кроме того, используя команду

grid on

можно нанести измерительную сетку на всю область построения графика. Применяя все эти средства

title( ‘Function sin(x) graph’ );

xlabel( ‘x coordinate’ ); ylabel( ‘sin(x)’ );

text( 2.1, 0.9, ‘leftarrowsin(x)’ ); grid on;

придаём графику функции следующий вид:

Надпись функцией text помещается, начиная от точки с координатами, указанными первыми двумя аргументами. Специальные символы вводятся внутри текста после символа («обратная косая черта»). В примере мы ввели таким образом специальный символ «стрелка влево». Обозначения для специальных символов совпадают с таковыми в системе подготовки научных текстов TeX.

Точка в matlab

Обычная графика MATLAB

Построение графиков точками и отрезками прямых

Графики в логарифмическоми полулогарифмическом масштабе

Гистограммы и диаграммы

Графики специальных типов

Создание массивов данных для трехмерной графики

Построение графиков трехмерных поверхностей, сечений и контуров

Средства управления подсветкой и обзором фигур

Средства оформления графиков

Одновременный вывод нескольких графиков

Управление цветовой палитрой

Окраска трехмерных поверхностей

Двумерные и трехмерные графические объекты

Одно из достоинств системы MATLAB — обилие средств графики, начиная от команд построения простых графиков функций одной переменной в декартовой системе координат и кончая комбинированными и презентационными графиками с элементами анимации, а также средствами проектирования графического пользовательского интерфейса (GUI). Особое внимание в системе уделено трехмерной графике с функциональной окраской отображаемых фигур и имитацией различных световых эффектов.

Описанию графических функций и команд посвящена обширная электронная книга в формате PDF. Объем материала по графике настолько велик, что помимо вводного описания графики в уроке 3 в этой книге даются еще два урока по средствам обычной и специальной графики. Они намеренно предшествуют систематизированному описанию большинства функций системы MATLAB, поскольку графическая визуализация вычислений довольно широко используется в последующих материалах книги. При этом графические средства системы доступны как в командном режиме вычислений, так и в программах. Этот урок рекомендуется изучать выборочно или выделить на него не менее 4 часов.

Построение графиков отрезками прямых

Функции одной переменной у(х) находят широкое применение в практике математических и других расчетов, а также в технике компьютерного математического моделирования. Для отображения таких функций используются графики в декартовой (прямоугольной) системе координат. При этом обычно строятся две оси — горизонтальная X и вертикальная Y, и задаются координаты х и у, определяющие узловые точки функции у(х). Эти точки соединяются друг с другом отрезками прямых, т. е. при построении графика осуществляется линейная интерполяция для промежуточных точек. Поскольку MATLAB — матричная система, совокупность точек у(х) задается векторами X и Y одинакового размера.

Команда plot служит для построения графиков функций в декартовой системе координат. Эта команда имеет ряд параметров, рассматриваемых ниже.

plot (X, Y) — строит график функции у(х), координаты точек (х, у) которой берутся из векторов одинакового размера Y и X. Если X или Y — матрица, то строится семейство графиков по данным, содержащимся в колонках матрицы.

Приведенный ниже пример иллюстрирует построение графиков двух функций — sin(x) и cos(x), значения функции которых содержатся в матрице Y, а значения аргумента х хранятся в векторе X:

На рис. 6.1 показан график функций из этого примера. В данном случае отчетливо видно, что график состоит из отрезков, и если вам нужно, чтобы отображаемая функция имела вид гладкой кривой, необходимо увеличить количество узловых точек. Расположение их может быть произвольным.

Рис. 6.1. Графики двух функций в декартовой системе координат

plot(Y) — строит график у(г), где значения у берутся из вектора Y, a i представляет собой индекс соответствующего элемента. Если Y содержит комплексные элементы, то выполняется команда plot (real (Y). imag(Y)). Во всех других случаях мнимая часть данных игнорируется.

Вот пример использования команды plot(Y):

Соответствующий график показан на рис. 6.2.

Рис. 6.2. График функции, представляющей вектор Y с комплексными элементами

plot(X.Y.S) — аналогична команде plot(X.Y), но тип линии графика можно задавать с помощью строковой константы S.

Значениями константы S могут быть следующие символы.

Ссылка на основную публикацию
Adblock
detector