5. Вывод обозначений кривых — Legend

 

Вывод обозначений кривых— Legend

Наглядность графиков, особенно имеющих несколько кривых, повышается при выводе обозначений кривых — так называемой легенды. В подпакете Legend для этого имеются следующие средства:

  • PlotLegend->{textl,text2,...} — опция для функции Plot, устанавливающая легенду в виде последовательных текстовых надписей (рис. 14.49);
  • ShowLegend [graphic, legendl, Iegend2,...] — добавляет легенду в имеющийся график graphic;
  • {{{boxl, textl},...}, opts} — спецификация легенды с цветными примитивами или графиками для рамок boxi с текстами texti;
  • {colorfunction, n, ninstring,maxstring, opts} — спецификация легенды с n рамками, указанием цветовой спецификации и строк, размещаемых в рамках.

Рис. 14.49. Пример построения графиков двух функций с выводом легенды

Обратите внимание на то, что среди многочисленных опций функции Plot имеется ряд, относящихся к параметрам легенды: LegendPosition-> {-1,1} — установка позиции легенды, LegendSize->Automatic — установка размера легенды, LegendShadow->Automatic — установка тени для рамки легенды, Legend-Orientation->Vertical — ориентация рамки легенды, LegendLabel->None — заголовок легенды и LegendTextDirection->Automatic — направление текста. С помощью этих опций можно существенно влиять на вид легенды.

На рис. 14.50 показано построение графика плотности с применением функции ShowLegend для вывода легенды в виде таблицы плотностей. Обратите внимание на применение опции LegendPosition для вывода легенды справа от графика.

Рис. 14.50. Построение графика плотности с легендой

Для иллюстрации эффективности применения опций функции Plot, влияющих на вид легенды, рассмотрим еще один пример, представленный на рис. 14.51.

Рис. 14.51. Пример построения графика двух функций с легендой и установкой ряда ее опций

В заключение отметим еще две функции подпакета Legend:

  • Legend [legendargs, opts] — создает графический примитив для задания индивидуальной легенды;
  • ShadowBox [pos, size, opts] — создает графический примитив в виде рамки для легенды.

К примеру, показанный ниже вызов функции ShadowBox создает графический примитив в виде пустой рамки с тенью:

ShadowBox[{0, 0}, {1, 1},ShadowBackground -> GrayLevel[.8]]

{GrayLevel[0.8], Rectangle[{0.1, -0.1), {1.1, 0.9}], GrayLevel[l], Rectangle[{0, 0}, {1, 1}], Thickness[0.001], GrayLevel[0], Line[{{0, 0), {1, 0), {1, 1}, {0, 1), {0, 0}}]} Для просмотра полученной рамки можно использовать команду Show[Graphics[%]]

Применение функции Graphics здесь связано с тем, что ShadowBox порождает графический примитив, а не законченный графический объект.

 

Построение графиков с множеством объектов — MultipleListPlot

В подпакете MultipleListPlot содержится расширенный вариант встроенной функции ListPlot:

  • MultipleListPlot [listl, Iist2,...] — строит множество графических объектов по данным списков. Списки могут быть представлены ординатами у, координатами точек {х,у), в виде {point, ErrorBar [ {negerr,poserr} ] } и т.д.

Рис. 14.52. Создание трех списков значений функций и их построение

Рисунок 14.52 иллюстрирует создание трех списков — 11, 12 и 13 — для трех функций и вывод их графиков в виде различных маленьких фигур.

Особое значение имеет опция Plot Joined. Если она используется в виде Plot-Joined->True, то это означает соединение точек на графиках отрезками линий разного стиля, выбираемого автоматически (рис. 14.53).

Рис. 14.53. Графики трех функций, построенные линиями, соединяющими их точки

Эта опция может быть представлена и со значением в виде списка. Например, ее применение в виде PlotJoined->{True, False, False} означает, что точки первой кривой соединяются линиями, тогда как точки второй и третьей кривых линиями не соединяются. Рисунок 14.54 поясняет этот способ построения графиков.

Рис. 14.54. Построение трех графиков, только у одного из которых точки соединены линиями

Функция MultipleListPlot может использовать в списках указания на построение точки с зоной погрешности (ErrorBar). Этот случай иллюстрирует рис. 14.55.

Более интересный случай построения точек с двумерными зонами погрешности в виде окружностей или эллипсов демонстрирует рис. 14.56.

Рис. 14.55. Построение точек с одномерными зонами погрешности

Рис. 14.56. Построение точек с двумерными зонами погрешности

  • Следующие функции служат для вывода символов в качестве точек:
  • PlotSymbol [type] — задает тип символа (возможные значения: Box, Diamond, Star или Triangle). Возможно применение опции_ Filled-> False;
  • PlotSymbol [type, size] — задает тип символа и его размер size;
  • MakeSymbol [primitives] — задает вывод символа, создаваемого графическим примитивом.

Рисунок 14.57 показывает построение точек с применением графических примитивов. Этот путь позволяет обозначать точки графиков практически любыми фигурами.

Рис. 14.57. Построение точек с применением графических примитивов

Для создания примитивов в виде правильных многоугольников (полигонов) используется директива RegularPolygon:

  • RegularPolygon [n] — правильный «-угольный полигон;
  • RegularPolygon [n, rad] — правильный и-угольный полигон с заданным радиусом описанной окружности rad;
  • RegularPolygon [n, rad, ctr] — то же с заданным центром ctr;
  • RegularPolygon [n, rad, ctr, tilt] — то же с углом поворота фигуры на tilt градусов;
  • RegularPolygon [n, rad, ctr, titl, k] — соединение линиями через k вершин.

Рисунок 14.58 показывает построение полигона — семиугольника с радиусом 3, центром в точке {0, 0}, углом поворота 20° и соединением через 3 вершины (попробуйте задать этот параметр другим целым числом и убедитесь, насколько меняется форма фигуры).

Директивы Dashing[ {Dot, Dash, LongDash,...} ] и AbsoluteDashing[ {Dot,...} ] служат для спецификации типа линий графиков. На рис. 14.59 представлены примеры такой спецификации и построения отрезков прямой линиями разных типов.

Применение функций подпакета MultipleListPlot наиболее ценно при визуализации математических расчетов, где преобладают графики тех типов, которые создаются этими функциями.

Рис. 14.58. Построение полигона

Рис. 14.59. Примеры построения отрезков прямых разными стилями

 

gl14-49.jpg

Изображение: 

gl14-50.jpg

Изображение: 

gl14-51.jpg

Изображение: 

gl14-52.jpg

Изображение: 

gl14-53.jpg

Изображение: 

gl14-54.jpg

Изображение: 

gl14-55.jpg

Изображение: 

gl14-56.jpg

Изображение: 

gl14-57.jpg

Изображение: 

gl14-58.jpg

Изображение: 

gl14-59.jpg

Изображение: