4. Средства графики Цель работы
![]()
|
1 4. Средства графики 4.1. Цель работы Изучить графический инструментарий MATLAB и овладеть навыками построения двумерных и трехмерных графиков. 4.2. Краткая теоретическая справка Графический инструментарий MATLAB для построения и оформления двумерных и трехмерных графиков имеет свою специфику. Однако ряд следующих типовых положений является для них общим: □ Текущий график выводится в текущее графическое окно Figure, первый — в окно Figure 1. По умолчанию новый график выводится в то же окно, при этом предыдущий график автоматически удаляется. □ Вывод графиков в отдельных графическихокнах с автоматически присеваемыми номерами Figure 1, Figure 2, ... , выполняется с помощью функции (без аргумента) : figure которая ставится перед новой функцией построения графика. □ Вывод графика в отдельном графическомокне, имя которого присваивается пользователем, выполняется с помощью функции: figure('Name','<Имя графика>','NumberTitle','off') □ Вывод в текущее графическое окно Figure нескольких графиков на одних координатных осях выполняется по команде: hold on которая ставится перед новой функцией построения графика. □ Удалениеиз текущего графического окна Figure всех предыдущих графиков перед выводом нового графика выполняется по команде: hold off □ Разбиениетекущего графического окна Figure на отдельные поля для вывода независимых графиков выполняется с помощью функции: subplot(m,n,p) где: m n — размер матрицы графического окна: m строк и n столбцов; p — порядковый номер поля выводимого графика, считая по строкам слева направо. Функция построения графика ставится после функции subplot 2 □ Средства оформления графиков, представленные в виде функций MATLAB (табл. 4.1), ставятся после функции построения графика. Во избежание ошибок <текст> рекомендуется вводить латинскими буквами. Таблица 4.1. Функции оформления графиков Функция Назначение grid Нанесение координатной сетки с автоматическим выбором шага title('<текст>') Заголовок графика xlabel('<текст>') ylabel('<текст>') zlabel('<текст>') Обозначение осей графика x, y, z xlim([xmin xmax]) ylim([ymin ymax]) zlim([zmin zmax]) Установка границ (двухэлементным вектором) по осям x, y, z при выводе графика legend('legend1','legend2',…) Размещение легенды на автоматически выбираемом месте. При выводе нескольких графиков на одних осях их легенда отображается в порядке вывода графиков 4.2.1. Двумерные графики Система MATLAB предлагает большое разнообразие стандартных функций для построения двумерных графиков. Полный список функций, используемых в двумерной графике, выводится по команде: help graph2d Основные из них с наиболее распространенными форматами приведены в табл. 4.2. Таблица 4.2. Функции построения двумерных графиков Имя функции Назначение и формат plot Графики в линейном масштабе с линейной интерполяцией между соседними значениями: plot(x,y[,<параметры управления>]) где: x , y — аргумент и функция (векторы или матрицы), согласованные по длине; <параметры управления> — необязательные параметры, управляющие свойствами графика (см. разд. 4.2.2). 3 Квадратные скобки используются для условного обозначения необязательных параметров semilogx Графики в логарифмическом масштабе по оси абсцисс и линейном — по оси ординат. Формат подобен функции plot Диапазон по оси абсцисс в логарифмическом масштабе можно задавать с помощью функции: logspace(d1,d2[,n]) где: d1 , d2 — начальное 10 d1 и конечное 10 d2 значения диапазона; n — количество точек в логарифмическом масштабе, по умолчанию равно 50 semilogy Графики в линейном масштабе по оси абсцисс и логарифмическом — по оси ординат. Формат подобен функции plot loglog Графики в логарифмическом масштабе по осям абсцисс и ординат. Формат подобен функции plot stem Графики последовательностей чисел: stem(x,y,'fill'[,<параметры управления>]) где 'fill' — необязательный параметр, указывающий на закрашивание маркеров. Остальные входные параметры определяются как для функции plot hist Гистограммы: hist(y,x) где y , x — векторы одинаковой длины; гистограмма отображает число попаданий значений элементов вектора y в интервалы, центры которых заданы элементами вектора x В отсутствии вектора x для значений элементов вектора y по умолчанию выбирается 10 интервалов, и гистограмма отображает число попаданий значений элементов вектора y в центры данных интервалов. Цвет столбцов выбирается с помощью функции colormap (см. разд. 4.2.4) 4.2.2. Управление свойствами двумерных графиков Свойствами графика можно управлять с помощью <параметров управления> (см. табл. 4.2), которые условно можно разделить на две группы: □ LineSpec — свойства без стандартных имен; □ PropertyName — свойства со стандартными именами. Параметры группы LineSpec определяют тип и цвет линии графика, а также вид маркеров. Значения параметров данной группы представлены в табл. 4.3. В функциях построения графиков значения параметров указываются в апострофах без разделяющих символов в произвольном порядке. Например: 4 stem(x,y,'-ms') Если параметры не указаны, то они выбираются автоматически. Таблица 4.3. Параметры группы LineSpec Тип линии Цвет линии или маркера Вид маркера Символ Линия Символ Цвет Символ Маркер - solid (непрерывная) y yellow (желтый) . point (точка) : dotted (пунктир, короткий штрих) m magenta (фиолетовый) o circle (кружок) -. dashdot (штрих пунктир) c cyan (голубой) x x-mark (крестик) -- dashed (пунктир, длинный штрих) r red (красный) + plus (плюс) g green (зеленый) * star (звездочка) b blue (синий) s square (квадрат) w white (белый) k black (черный) Параметры группы PropertyName представлены четырьмяразновидностями со следующими стандартными именами, задаваемыми в апострофах: LineWidth — толщина линии в пунктах (1 пункт = 1/75 дюйма ≈ 0,34 мм), задаваемая цифрой без апострофов, по умолчанию равна 0,5; MarkerEdgeColor — цвет маркера, задаваемый значением соответствующего параметра из табл. 4.3 в апострофах; MarkerFaceColor — цвет закрашивания маркера (для замкнутых маркеров типа кружок, квадрат и т. п.), задаваемый значением соответствующего параметра из табл. 4.3 в апострофах; MarkerSize — размер маркера в пунктах, задаваемый цифрой без апострофов, по умолчанию равен 7. Например: stem(x,y,'MarkerSize',5,'MarkerEdgeColor','g','MarkerFaceColor',... 'r','LineWidth',1) 5 4.2.3. Трехмерные графики Трехмерная графика предназначена для построения в трехмерном пространстве графиков функций двух переменных (двух аргументов) ( , ) z x y Построение трехмерных графиков начинается с формирования сетки на плоскости XOY с помощью вспомогательных матриц X и Y по известным векторам x и y соответственно, где X — матрица, строки которой — копии вектора x, а Y — матрица, столбцы которой — копии вектора y. Матрицы X и Y должны иметь одинаковые размеры: количество строк каждой из них равно длине вектора y, а столбцов — длине вектора x. Матрицы X и Y формируются с помощью функции: [X,Y] = meshgrid(x,y) Если векторы x и y одинаковы, то допускается короткий формат: [X,Y] = meshgrid(x) Полный список функций, используемых в трехмерной графике, выводится по команде: help graph3d Основные из них с наиболее распространенными форматами приведены в табл. 4.4. Таблица 4.4. Функции построения трехмерных графиков Имя функции Назначение и формат plot3 Трехмерные графики в виде двумерных линий: plot3(X,Y,Z[,<параметры управления>]) где: X , Y — матрицы, формирующие сетку на плоскости XOY с помощью функции meshgrid ; Z — функция (вектор или матрица); <параметры управления> — необязательные параметры, управляющие свойствами графика (см. разд. 4.2.4). Квадратные скобки используются для условного обозначения необязательных параметров mesh Трехмерные сетчатые графики(с автоматическим нанесением координатных сеток). Формат подобен функции plot3 surf Трехмерные сетчатые графики с окрашиванием поверхности (с автоматическим нанесением координатных сеток).Формат подобен функции plot3 6 Пример формирования матриц X и Y для сетки на плоскости XOY и построения трехмерных графиков с помощью функций mesh и plot3 : >> [X,Y] = meshgrid(-5:0.25:5); >> Z = X.^2+Y.^2; >> mesh(X,Y,Z) >> figure >> plot3(X,Y,Z),grid 4.2.4. Управление свойствами трехмерных графиков Свойствами трехмерного графика можно управлять с помощью <параметров управления> (см. табл. 4.4), рассмотреных в разд. 4.2.2. Для управления свойствами трехмерных графиков предусмотрен ряд дополнительных средств, из которых выделим следующие два: □ выбор палитры цветов; Палитра цветов задается с помощью функции: сolormap('<символическое имя палитры>') Символические имена основных палитр представлены в табл. 4.5; по умолчанию установлена палитра hsv Функция colormap может стоять до или после функции построения графика. Восстановление палитры hsv выполняется с помощью функции: colormap('default') □ вывод на поле графика шкалы цветов, устанавливающей соответствие со значениями функции, выполняется по команде: colorbar которая обязательно ставится последней. Таблица 4.5. Стандартные палитры Символическое имя Палитра bone Серо-синяя cool Фиолетово-голубая copper Оттенки меди flag Чередование: красный, белый, синий, черный gray Оттенки серого hot Чередование: черный, красный, желтый, белый hsv Радуга jet Разновидность hsv 7 pink Розовая colorcube Расширенная палитра hsv autumn Красно-желтая spring Желто-фиолетовая winter Сине-зеленая summer Желто-зеленая white Белая (бесцветная) 4.3. Литература 1. Солонина А. И., Арбузов С. М. Цифровая обработка сигналов. Моделирование в MATLAB. — СПб.: БХВ-Петербург, 2008, гл. 5. 2. Сергиенко А. Б. Цифровая обработка сигналов. 3-е издание — СПб.: БХВ- Петербург, 2010, Приложения 1—2. 4.4. Содержание лабораторной работы Содержание работы связано с изучением инструментария MATLAB для построения, оформления и управления свойствами двумерных и трехмерных графиков. 4.5. Задание на лабораторную работу Задание на лабораторную работу включает в себя следующие пункты: 1. Построение двумерного графика. Для аргумента x , заданного на интервале [0; 8 ] x с шагом 8 x , (4.1) вычислить функцию 1 sin y x (4.2) и вывести ее график в линейном масштабе с линейной интерполяцией между соседними значениями. Выполнить следующие действия по оформлению графика: нанести координатную сетку; обозначить ось абсцисс. Пояснить: какая функция используется для вывода графика; в какое окно выводится график; 8 какие функции используются для нанесения координатной сетки и обозначения оси абсцисс. 2. Построение нескольких двумерных графиков на одних координатных осях. В том же окне вывести графики функций: 2 sin x y x ; (4.3) 3 0,5cos y x , (4.4) для которых аргумент x задан на интервале (4.1). При выводе графиков выбрать различный цвет линий для функций 1 y , 2 y и 3 y Выполнить следующие действия по оформлению графика: обозначить ось ординат как axis y ; ввести заголовок графика в виде Functions y1 y2 y3 ; разместить легенду для графиков функций: 1 y — sin(x) ; 2 y — sin(x)/x ; 3 y — 0.5cos(x) Пояснить: какая команда обеспечивает вывод нескольких графиков на одних координатных осях; какая функция используется для вывода графиков; сохраняется ли координатная сетка и обозначение оси абсцисс при выводе следующих графиков в то же окно; какие функции используются для обозначения оси ординат, вывода заголовка и размещения легенды. 3. Построение независимых графиков в одном окне с его разбиением на отдельные поля. В графическом окне с именем Graph2D вывести друг под другом графики функций 1 y (4.2), 2 y (4.3) и 3 y (4.4). Выполнить следующие действия по оформлению графиков: нанести координатную сетку; обозначить оси абсцисс и ординат; ввести заголовки графиков. Пояснить: как создается окно с заданным именем; какая функция позволяет строить несколько независимых графиков в одном графическом окне. 4. Построение графика последовательности чисел. 9 В окне Sequence1 вывести график значений функции 2 y (4.3) с нанесением координатной сетки и без закрашивания маркеров. В новом окне Sequence2 вывести тот же график с нанесением координатной сетки, закрашиванием маркеров и следующей установкой параметров управления: толщина линий равна 2; размер маркеров равен 6; цвет маркеров отличается от цвета линий; цвет закрашивания маркеров отличается от цветов линий и маркеров. Пояснить: какая функция используется для вывода последовательностей чисел; какой параметр этой функции отвечает за закрашивание маркеров; как устанавливаются параметры управления. 5. Построение графиков в полулогарифмическом и логарифмическом масштабах. По оси абсцисс x1 задать диапазон значений [1; 10 4 ] с помощью функции logspace Вычислить функцию 4 y х . (4.5) В окне Logarithms axes вывести друг под другом графики функции 4 y (4.5) с нанесением координатной сетки и следующих масштабах по осям: логарифмическом — по оси абсцисс; линейном — по оси ординат; логарифмическом — по осям абсцисс и ординат. Пояснить: как диапазон значений задается с помощью функции logspace ; какая функция используется для вывода графика в логарифмическом масштабе по оси абсцисс; какая функция используется для вывода графика в логарифмическом масштабе по осям абсцисс и ординат. 6. Построение гистограмм. В окне Histogram вывести гистограмму нормального белого шума (см.табл. 2.1) — вектора 5 y длиной 1000. Количество интервалов выбрать по умолчанию. Пояснить: какая функция используется для построения гистограммы; что отображает гистограмма; 10 как гистограмма связана с плотностью вероятности нормального белого шума. 7. Построение трехмерного графика. Для аргументов x и y , заданных на одинаковых интервалах: [ ; ] x с шагом 32 x , [ ; ] y с шагом 32 y , вычислить функцию sin cos z x y , и в окне Graph3D вывести ее сетчатый график с автоматическим нанесением координатных сеток. Выполнить следующие действия по оформлению графика: выбрать фиолетово-голубую палитру; обозначить оси x , y , z ; вывести на поле графика шкалу цветов. Пояснить: с чего начинается построение трехмерного графика; какая функция для этого используется; какая функция используется для вывода графика; какая функция используется для выбора палитры; какая команда используется для вывода шкалы цветов. 4.6. Задание на самостоятельную работу Самостоятельное задание рекомендуется для закрепления полученных знаний и включает в себя следующие пункты: 1С. Построение двумерного графика. Для аргумента x , заданного на интервале 2π; 2π x , вывести график функции sin y x x с помощью функции plot , вывести заголовок и легенду, обозначить оси абсцисс и ординат. 2С. Построение двумерных графиков на одних координатных осях. Для аргумента x , заданного на интервале 2π; 2π x , с помощью функции plot вывести графики функций, образующих систему уравнений: 11 5sin ; 5 2. y x y x Найти решение системы (приблизительное) по графику и проверить его методом подстановки в окне Command Window. Для оформления графиков, включая вывод легенды, использовать программные средства. 3С. Построение двумерных графиков в одном графическом окне на отдельных полях. Для аргумента x , заданного на интервале 2π; 2π x , с помощью функции plot на отдельных полях вывести графики функций: 1 sin y x ; 2 sin y x ; 3 sin y x 4С. Построение трехмерных графиков . Привести примеры построения трехмерных графиков с помощью функций plot3 , mesh и surf в отдельных графических окнах с оформлением, включая вывод шкалы цветов. 4.7. Отчет и контрольные вопросы Отчет составляется в редакторе Word и содержит результаты выполнения каждого пункта задания, включая операции для вычисления функций и построения графиков, копируемые из окна Command Window (шрифт Courier New), созданные графики (копируются по команде Edit | Copy Figure в окне Figure) и ответы на поставленные вопросы (шрифт Times New Roman). Защита лабораторной работы проводится на основании представленного отчета и контрольных вопросов из следующего списка: 1. В какое графическое окно выводится график по умолчанию? 2. Как вывести график в новое графическое окно? 3. Как вывести несколько графиков на одних координатных осях? 4. Как удалить графики перед выводом нового графика в то же графическое окно? 5. Как вывести несколько независимых графиков в одном графическом окне с его разбиением на отдельные поля? 6. Какие средства оформления графиков используются в MATLAB? 7. Какие средства предусмотрены для установки типа, цвета и толщины линий? 8. Какие средства предусмотрены для установки вида, размера и цвета маркеров? 9. Какая функция используется для построения двумерных графиков в линейном масштабе с линейной интерполяцией между соседними значениями? 12 10. Какая функция используется для построения последовательностей чисел? 11. Какие функции используются для построения графиков в полулогарифмическом и логарифмическом масштабах? 12. Какая функция используются для построения гистограмм? 13. В чем заключается подготовка перед построением трехмерного графика? 14. Какие функции используются для построения трехмерных графиков? 15. Как выбрать палитру цветов при построении трехмерного графика? 16. Как вывести шкалу цветов на поле трехмерного графика? Гистограмма, 3 Графики двумерные, 2 оформление, 2 свойства, 3, 6 трехмерные, 5 Команда colorbar, 6 grid, 2 hold off, 1 hold on, 1 Функции оформления графиков, 2 построения двумерных графиков, 2 построения трехмерных графиков, 5 Функция colormap, 6 figure, 1 hist, 3 legend, 2 loglog, 3 mesh, 5 meshgrid, 5 plot, 2 plot3, 5 semilogx, 3 semilogy, 3 stem, 3 subplot, 1 surf, 5 title, 2 xlabel, 2 xlim, 2 ylabel, 2 ylim, 2 zlabel, 2 zlim, 2 |