Специальная графика
Раздел специальной графики включает команды для построения диаграмм, гистограмм и прочих дискретных графиков.
»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 – подавляет информацию о текущих углах).
Графики поля градиентов quiver
Для построения графиков полей градиента служат команды quiver: quiver(X, Y, U, V) строит график поля градиентов в виде стрелок для каждой пары элементов массивов X и Y, причем элементы массивов U и V указывают направление и размер стрелок; quiver(U, V) строит векторы скорости в равнорасположенных точках на плоскости (х, y); quiver(U, V, S) или quiver(X, Y, U, V, S) автоматически масштабирует стрелки по сетке и затем вытягивает их по значению S; quiver(..., LINESPEC) использует для векторов указанный тип линии. Указанные в LINESPEC маркеры рисуются у оснований, а не на концах векторов. Для отмены любого вида маркера используйте спецификацию '.'. Спецификации линий, цветов и маркеров были подробно описаны в 4.1; quiver(..., 'filled') дает график с закрашенными маркерами; H = quiver(...) строит график и возвращает вектор дескрипторов. Пример применения команды quiver представлен на рис. 4.22.
»[x, y] = meshgrid(–1 : .2 : 1, –1 : .2 : 1); »z = x.*exp(–x.^2 – y.^2); »[px, py] = gradient(z, .2, .2); »quiver(x, y, px, py, 2); |
»[x, y] = meshgrid(–2 : .2 : 2, –1 : .15 : 1); »z = x .* exp(–x.^2 – y.^2); »[u, v, w] = surfnorm(x, y, z); »quiver3(x, y, z, u, v, w); »hold on, surf(x, y, z), hold off |
Рис. 4.22 |
Рис. 4.23 |
Изображение поля градиентов стрелками дает наглядное представление о линиях поля, указывая области, куда эти линии впадают и откуда они исходят; quiver3 рисует 3D-график в виде стрелок (рис. 4.23).