Дополнительные возможности
Создание нового графического окна figure: командой figure(n)можно выбирать некоторое из созданных окон в качестве текущего. Включение (выключение) режима сохранения текущего графика: hold on / off, hold.
Вывод заголовков для графиков (в текущем окне): title('текст'), title(<имя функции-строки>), title(...,'PropertyName', 'PropertyValue', ...), h=title(...).
Вывод графиков в нескольких окнах рисунка: subplot(m n k), subplot(m, n, k), где m – число окон по горизонтали, n – по вертикали, k – номер окна. На рис. 4.15 представлены две области построения трехмерных изображений
командами: »figure(2); »subplot(2, 1, 1) »plot3(x, y, z1), grid on; »title('z1') »subplot(2, 1, 2) »mesh(xord, yord, z2) »title('z2') | ![]() ![]() |
Вывод текста для обозначения координатной оси: xlabel(...), ylabel(...), zlabel(...) – синтаксис аналогичен title(...). Вывод текста в указанной позиции графика: text(x, y, 'текст'), text(x, y, z, 'текст'), text(..., 'PropertyName', 'PropertyValue', ...), h = text(...), где x, y, z – координаты начала текста.
Вывод легенды: legend('текст1', 'текст2', ...), legend(..., pos), legend(M), legend(h, M), legend off, h = legend(...), где М – строковый массив (длина строк одинакова), off – удаляет пояснения к графику, pos – определяет позицию легенды ( –1 – справа от графика, 0 – в одном из четырех углов с минимумом потерь точек графика, 1¸4 – в указанном углу, [x y] – в указанном месте).
Маркировка линий уровня, создаваемых командами contour, contour3, contourf: clabel(C, h), clabel(C, h, v), clabel(C, h, 'manual'), clabel(C), clabel(C,v), clabel(C, 'manual'): при наличии h маркировка на линиях, при наличии 'manual' – принудительная маркировка нажатием левой кнопки мыши или пробела (правая кнопка мыши или нажатие клавиши <Enter> завершает маркировку).
Подводя итоги, следующая последовательность команд демонстрирует на рис. 4.16 совокупное использование элементов оформления:
»subplot(1 1 1) »t = [0 : pi/30 : 2*pi]; »a = sin(t); b = cos(t); »x = 0 : 60; »plot(x, a+b), hold on »hp=plot(x, 'a', '+', x, 'b', '>'); »set(hp, 'LineWidth', 2) »legend('a+b', 'a=sin(t)', 'b=cos(t)') »title('y=sin(t)+cos(t)' ,'FontSize', 12, 'FontWeight', 'bold') | ![]() |
Специальная графика
Раздел специальной графики включает команды для построения диаграмм, гистограмм и прочих дискретных графиков.
»x = 0 : 0.5 : 5; »y = sin(x); »bar(x, y) | »x = 0 : 0.1 : 5; »y1 = sin(x); y2 = cos(x); »y = [y1; y2]; »bar(x, y, 'stack') | ||
![]() | ![]() | ||
Рис. 4.17 | |||
»x = [ 10 3 0.5 2]; »pie(x, [0 1 0 1]) | »x = –3 : 1 : 3; »t = randn(50, 1); »hist(t, x) | ||
![]() | ![]() | ||
Рис. 4.18 | Рис. 4.19 | ||
Столбцовые диаграммы реализуются командами barи barh:
bar(y), bar(x, y), h = bar(...), где y – массив (одно- или двумерный), x – одномерный, упорядоченный по возрастанию массив (число смежных по горизонтали столбцов диаграммы равно числу столбцов массива у); можно указать параметры относительной ширины столбцов (1 – касание, >1 – перекрытие, <1 – с промежутками), или стиля ('group', 'stack'). Два варианта использования команды bar представлены на рис. 4.17. Команда barh(...) отличается лишь размещением столбцов не по вертикали, а по горизонтали.
Секторная диаграмма (рис. 4.18) реализуется командой h = pie(...), pie(x), pie(x, y), где y – вектор из 0 и 1 для отделения от диаграммы части секторов.
Построение гистограммы hist(y), hist(y, x), hist(y, n), [p, x] = hist(y, ...) реализует подсчет числа элементов по столбцам массива y в n (по умолчанию 10) интервалах, что показано на рис. 4.19.
Дискретный график stem(y), stem(x, y), stem(...,'fill'), stem(..., LineSpec), h=stem(...) аналогичен столбцовой диаграмме и выводит значения в виде отрезков с маркером ('fill' – закраска маркера), что представлено на рис. 4.20.
»x = –3 : 0.2 : 3; »f = exp(–x.^2); »stem(x, f) | »x = –3 : 0.2 : 3; »f = exp(–x.^2); »scatter(x, f, 'filled') |
![]() | ![]() |
Рис. 4.20 | Рис. 4.21 |
Вывод поля точек (рис. 4.21) выполняется командой scatter(x, y, ...) с возможностью указывать размер, цвет и заполненность маркера.
Существуют команды поворота графического объекта rotate,например:
»h = surf(...);
»rotate(h, [1 0 0 ], 90) % поворот по оси хна 90°
и команды поворота графического объекта с помощью мыши rotate3d on | ON | off (on – режим включен, off – выключен, ON – подавляет информацию о текущих углах).