Построение графиков с окраской внутренних областей — FilledPlot
Многие графики сильно выигрывают при их построении с закраской. Например, чтобы проиллюстрировать значение определенного интеграла от какой-то функции f(x), достаточно просто закрасить ее график в диапазоне изменения х от нижнего предела интегрирования а до верхнего b. Для построения подобных графиков в подпакете FilledPlot имеется ряд полезных функций.
Начнем их описание с основных:
FilledPlot [f, {х, xmin, xmax} ] — строит график функции/(x) с окраской площадей, образованных линией функции и горизонтальной осью х. По умолчанию действуют опции Fills->Automatic и Curves->Back (то есть кривые строятся на заднем плане, при значении Front построение фигур производится на переднем плане);
FilledPlot [{ fl, f2,...}, {х, xmin, xmax} ] — строит графики функций с выделением областей между ними разной окраской (цвет задается автоматически).
Поясним применение этих функций рядом примеров. Перед этим надо не забыть загрузить подпакет командой
<< Graphics`FilledPlot`
На рис. 14.15 показано построение смещенной по оси у экспоненты с закраской области между линией экспоненты и горизонтальной осью х.
Рис. 14.15.
Построение экспоненты с закраской областей между ней и осью абсцисс
Действие функции FilledPlot при построении графиков трех функций показано на рис. 14.16. Здесь использована опция Curves->Front, выводящая построение кривых на первый план, благодаря чему отчетливо видны разделительные линии перекрывающихся областей.
Рис. 14.16.
Построение трех кривых с закраской областей между ними и осью абсцисс
Еще один пример построения графиков трех фигур показан на рис. 14.17. Здесь для закраски областей между фигурами и осью абсцисс использована опция Fills и директива GrayLevel (окраска серым цветом заданной плотности).
Рисунок 14.18 иллюстрирует закраску областей совместного применения двух функций, одна из которых — корень квадратный из х - 1 — определена только для И > 1. Именно эта область и закрашена.
Рис. 14.17.
Построение трех кривых с закраской серым цветом
Рис. 14.18.
Пример закраски области совместного действия двух функций
Имеется также ряд специальных функций для построения кривых с окраской образуемых ими областей:
FilledListPlot [ {yl, у2,...} ] —строит графики с окраской, меняющейся между кривыми {1, y1}, {2, у2 } и осью абсцисс х;
FilledListPlot [ {{xl, yl}, {х2, у2},...}] — строит графики ряда кривых с окраской, заданной {xi,yi} и осью абсцисс х;
FilledListPlot [datal, data2,...}] — строит графики ряда кривых с закраской областей, специфицированных данными datai.
Применение функции FilledListPlot показано на рис. 14.19.
Иногда важное значение может иметь опция AxesFront->Значение. При значении этой опции False область закраски закрывает соответствующую часть осей, а при значении True оси выводятся поверх закраски. Сам по себе вывод осей задастся опцией Axes->True. При Axes->False они вообще не выводятся. Рисунок 14.20 поясняет вывод осей и их построение поверх закращениой области.
В данном случае область окраски ограничена треугольником, который строится как полигон. Если установить опцию AxesFront->False, то часть осей (внутри треугольника) будет не видна.
Рис. 14.19.
Пример применения функции FilledListPlot
Рис. 14.20.
Пример вывода осей поверх закрашенной области
Графики специальных типов — Graphics
Подпакет Graphics задает ряд функций для построения специальных графиков, например с логарифмическими и полулогарифмическими масштабами, с нанесенными на кривые точками, графиков в виде гистограмм и т. д. Такие графики широко применяются для визуализации не только математических и физических, но также финансовых и экономических расчетов. К примеру, функция Log-Plot [f, {х,xmin,xmax}] строит линейно-логарифмический график/(x) при изменении х от xmin до xmax. Список таких функций дан в приложении.
Ввиду очевидности этих функций ограничимся одним примером — построением экспоненциальной функции в полулогарифмическом масштабе (по оси у масштаб логарифмический, а по оси х~ линейный).
Как видно из рис. 14.21, график вырождается в прямую линию.
Для построения графиков в полярной системе координат заданы следующие функции:
PolarPlotff, {t, tmin, tmax} ] — строит график функции в полярной системе координат как положение конца радиус-вектора f при изменении угла t от tmin до tmax;
PolarPlot [ { f 1, f 2,...}]- строит графики ряда функций f 1, f 2,... в полярной системе координат;
Рис. 14.21.
Построение графика экспоненты в полулогарифмическом масштабе
Построение графика трех функций в полярной системе координат с помощью функции PolarPlot представлено на рис. 14.22.
Рис. 14.22.
Построение графиков трех функций в полярной системе координат
В ряде случаев удобно представление данных в виде столбцовых и круговых диаграмм. Для построения столбцовых диаграмм служат функции, описанные ниже:
BarChart [datalistl,datalist2,...] — строит столбцовую диаграмму по данным списков, располагая столбцы рядом и обеспечивая их автоматическую закраску цветом (рис. 14.23).
Здесь любопытно отметить, что списки данных могут иметь разную длину. Число столбцов задается большим списком. Отсутствующие данные у спис-
ков меньшей длины считаются нулевыми, и для них столбцы не строятся. Данные, представленные отрицательными числами, строятся как столбцы, обращенные вниз.
Рис. 14.23.
Построение столбцовых диаграмм для двух списков данных с расположением столбцов друг рядом с другом
StackedBarChart [datalist1, datalist2,...] — строит столбцовую диаграмму, располагая столбцы одних данных над столбцами других данных (рис. 14.24) с автоматическим выбором цветов для каждого набора данных.
Рис. 14.24.
Построение столбцовых диаграмм со столбцами, расположенными друг над другом
В этой столбцовой диаграмме вначале строятся столбцы, представляющие данные для первого списка, над ними надстраиваются столбцы новых данных, так что общая высота столбцов пропорциональна сумме численных значений i-x элементов списков.
PercentileBarChart [datalistl, datalist2,...] — строит столбцовую диаграмму, отображающую нормированные данные в процентах (рис. 14.25).
Здесь построение идет так же, как в предыдущем случае. Однако высоты столбцов указываются в процентах и нормируются — за 100 % принимается максимальная высота столбцов выше горизонтальной оси, а за -100 % — максимальная высота столбца ниже горизонтальной оси.
GeneralizedBarChart [datalistl, datalist2,...] — строит столбцовую диаграмму с заданной высотой и шириной столбцов (рис. 14.26).
Рис. 14.25.
Построение столбцовых диаграмм с процентным отсчетом
Рис. 14.26.
Построение столбцовых диаграмм с произвольной шириной столбцов
В этом случае имеется возможность указать в списках данных позицию по оси х, высоту столбца и его ширину. Ширина задается в относительных единицах: при ширине, равной 1, столбцы сливаются (но выделяются цветом), при величине меньше 1 они разделяются пустыми промежутками, а при величине, большей 1, столбцы перекрываются.
Все указанные функции имеют опции, существенно влияющие на вид диаграмм. Рекомендуется просмотреть их с помощью функции Options. Ограничимся тремя наглядными примерами на применение опций. Рисунок 14.27 показывает построение столбцовой диаграммы с горизонтальным расположением столбцов и произвольным выбором цвета для каждого набора.
На рис. 14.28 построена диаграмма для одного комплекта данных. Но выбор цвета каждого из столбцов задается с помощью условного оператора. На рис. 14.29 показан наиболее сложный пример построения столбцовых диаграмм. Наряду с цветовыми эффектами задается обвод пунктирной линией столбцов одного из комплектов данных и, главное, — вывод надписей (названий месяцев) под наборами столбцов. Обратите внимание на то, что надписи могут быть на русском языке.
Рис. 14.27.
Построение столбцовой диаграммы с горизонтально расположенными столбцами и произвольным выбором цвета для каждого набора данных
Рис. 14.28.
Столбцовая диаграмма с выбором цвета столбцов по условию
Следующая функция позволяет стоить круговые диаграммы. Они наиболее удобны, когда оцениваются относительные величины, при этом сумма данных соответствует площади круга:
PieChart [data] — строит круговые диаграммы по данным data (рис. 14.30). Тип диаграммы задается опциями, список которых и значения по умолчанию можно получить командой Options [PieChart]. Одна из опций— PieExploded — позволяет отделить заданный сектор от диаграммы, что порой повышает наглядность представления данных.
Рис. 14.30.
Построение набора круговых диаграмм Здесь использована также одна из следующих функций:
DisplayTogether [plotl,plot2,..., opts] — строит комбинированный графический объект, объединяя графики ploti в общих координатных осях;
DisplayTogetherArray [plotl,plot2,..., opts] — строит комбинированный графический объект, выводя графики ploti в виде массива.
На рис. 14.31 показано построение круговой диаграммы с применением окраски чередующихся секторов оттенками серого цвета.
Рис. 14.31.
Построение круговой диаграммы с раскраской чередующихся секторов оттенками серого цвета
Еще одну возможность разнообразить круговые диаграммы иллюстрирует рис. 14.32. Здесь показано, что в секторы можно заносить небольшие надписи, например имена людей, даты и т. д.
Рис. 14.32.
Построение круговой диаграммы с надписями внутри секторов
Функция DisplayTogether позволяет объединять графики разного типа. На рис. 14.33 показано построение графика экспериментальных точек и линий линейной и параболической регрессии.
Рис. 14.33.
Совместное построение исходных точек данных и линий линейной и параболической регрессии
Применение функции DisplayTogetherArray для построения трех круговых диаграмм с номерами секторов показано на рис. 14.34. Это те же диаграммы, что и на рис. 14.30, но аргумент функции DisplayTogetherArray на сей раз представляет собой не одномерный, а двумерный массив (в первой строке два графика, во второй — один).
Рис. 14.34.
Построение трех круговых диаграмм с номерами секторов
Иногда нужно использовать в качестве точек графика цифры. Это реализует следующая функция, имеющая три формы:
TextListPlot [ {y1, у2,...} ] — построение точек с ординатами yi и абсциссами 1, 2, ... с представлением их числами 1, 2, ... (рис. 14.35);
TextListPlot [ {{xl, yl}, {х2, у2},...} ] — построение точек с координатами {xi, yi} и представлением их числами 1, 2, ...;
TextListPlot [ {{xl, yl, exprl), {x2,y2,expr2 },...}] — построение точек с координатами {xi, yi} и представлением их числами, заданными выражениями expri.
ErrorListPlot [{{yl, dl}, {y2, d2 },...}] — построение графика точек yi с зонами ошибок di (рис. 14.36).
Рис. 14.36.
График с точками и зонами ошибок
Таким образом, подпакет Graphics обеспечивает построение наиболее распространенных типов графиков, используемых в научно-технической и финансово-экономической литературе.