Вы здесь

3. Построение объемных контурных графиков — ContourPlot3D

 

Построение объемных контурных графиков — ContourPlot3D

 

В подпакете ContourPlotSD заданы две функции, которые строят контурные объемные графики. Напоминаем, что функции ядра ContourPlot и ListContourPlot строят только двумерные графики этого типа. Для построения объемных контурных графиков надо использовать следующие функции:

  • ContourPlotSD[f,{x,xmin,xmax},{у,ymin,углах),{z,zmin,zmax)] — строит трехмерный контурный график функции f трех переменных: х, у и z;
  • ListContourPlot3D[f, { fill, f 112,...}, { f 121, f 122,...},...},...}] -строит контурный график по данным трехмерного массива значений f .

На рис. 14.12 показано построение сферы с отверстием с помощью первой из этих функций.

Обратите внимание на то, что никаких усилий по созданию в сфере отверстия не требуется, Оно получено просто усечением ограничительного «ящика», в котором размещается сфера. Для этого пределы по оси у заданы как {-1.2,2}, тогда как по остальным осям используются пределы {-2,2}.

Рис. 14.12. Построение сферы с отверстием

Интересные возможности открывает опция Contours, которая позволяет как бы раздвинуть в пространстве части трехмерной поверхности. Рисунок 14.13 демонстрирует ее действие.

Риc. 14.13. Построение частей сферы в пространстве

Вторая функция— ListContourPlot3D — позволяет строить ряд фигур или поверхностей в пространстве. Пример такого построения дан на рис. 14.14. Масштабы осей подобраны так, чтобы фигура была несколько обрезана справа, что создает изображение отверстия во внутренней яйцеобразной фигуре.

Рис. 14.14. Построение яйцо, вложенного в параболы

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

Построение графиков с окраской внутренних областей — 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,... в полярной системе координат;
  • PolarListPlot [ {rl, r2,...} ] — строит график списка радиусов ri, равномерно изменяя угловую координату.

Рис. 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. Столбцовая диаграмма с выбором цвета столбцов по условию

Рис. 14.29. Комплексное построение столбцовых диаграмм

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

  • 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.

Рис. 14.35. Построение графика сточками, представленными цифрами

Еще одна функция, также имеющая три формы, дает тот же результат, но дополнительно строит и сами точки:


LabelListPlot [ {yl, у2,...} ] LabelListPlot [{ {xl,yl}, {х2,у2 },...}] LabelListPlot [{ {x1, y1, expr1}, {х2, у2, expr2 },...}]

Наконец, есть еще одна функция:

  • ErrorListPlot [{{yl, dl}, {y2, d2 },...}] — построение графика точек yi с зонами ошибок di (рис. 14.36).

Рис. 14.36. График с точками и зонами ошибок

Таким образом, подпакет Graphics обеспечивает построение наиболее распространенных типов графиков, используемых в научно-технической и финансово-экономической литературе.

 


Top.Mail.Ru