Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

2.6.6. Редактирование графиков



2.6.6. Редактирование графиков

Меню Edit

Меню Edit (Правка) включает набор стандартных команд, присутствующих в любом текстовом или графическом редакторе — Undo (Отменить ввод), Cut (Вырезать), Сору (Копировать), Paste (Вставить), Clear (Очистить) и Select Al l (Выделить все).

Команда Edit | Figure Properties (Правка | Свойства графического объекта) вызывает Property Editor (Редактор свойств), который пристыковывается к графическому окну и предварительно настроен на изменение свойств фигуры (Figure). В появившихся окнах редактора отображены наиболее употребительные параметры фигуры. Можно изменить заголовок графического объекта (Figure Name), сменить цветовую палитру (Colormap),указать цвет окаймления поля графика (Figure Color), включить или отключить воспроизведение порядкового номера графического окна (Show Figure Number). С помощью кнопки Inspector (Инспектор) вызывается Property Inspector (Инспектор свойств), в котором отображаются все свойства фигуры. Любое из них, не включенное в наиболее употребительный набор, тоже может быть изменено.

Из окна Property Editor (Редактор свойств) можно вызвать диалоговое окно Export Setup (Параметры экспорта). Если в графическом окне выделить оси, щелкнув по одной из них, то в окнах Property Editor (Редактор свойств) появляются свойства осей (рис. 2.25) и меняется заголовок (Property Editor — Axes). Вы можете изменить заголовок, расположенный над полем графика (Title), установить цвета осей, подписей и фона поля графика (Colors), включить или отключить изображение координатной сетки по любой из осей (Grid), включить или отключить обводку рамки поля графика (Box). Для каждой из координатных осей можно изменить наименование оси (X Label, Y Label, Z Label), минимальный и максимальный пределы изменения соответствующей переменной (X Limits,Y Limits, Z Limits), способ масштабирования по каждой из осей (X Scale, Y Scale, Z Scale), сменить направление оси на противоположное (Reverse).

Кнопка Ticks (Штрихи) вызывает Edit Axes Ticks (Редактор штрихов). С его помощью можно выбрать один из трех вариантов размещения штрихов — автоматический (Auto), ручной (Manual) или с заданным шагом (Step by), задать автоматический или ручной способ индикации каждого штриха (X Tick Labels), включить или отключить режим отображения малых штрихов (Show minor ticks). Кнопка Inspector (Инспектор) в окне Property Editor (Редактор свойств) вызывает инспектор, отображающий значения всех свойств координатных осей.

Выделение той или иной кривой (рис. 2.27) приводит к перенастройке редактора свойств на параметры указанного графика (Property Editor — Line-series). Раскрывающиеся списки X/Y/Z Label Data Source (Источник данных) позволяют изменить значения векторов х, у и z, задающих табличную функцию. После изменения любого из этих элементов необходимо нажать кнопку Refresh Data (Обновить данные), и тогда новые числовые значения вступят в силу.



В раскрывающемся списке Plot Type (Тип графика) вы можете выбрать один из пяти способов отображения графика функции. По умолчанию график воспроизводится линией (Line, отсюда и фрагмент заголовка окна — Lineseries). В раскрывающемся списке Line (Линия) задается тип линии (сплошная,штриховая, пунктирная или штрих-пунктирная). Значение no line (нет) заменяет линию графика маркерами в заданных точках. Цвет линии и ее толщина регулируются значениями, установленными при помощи кнопок-списков, выделяемых подсказками Color (Цвет) и LineWidth (Толщина линии) соответственно. В списке Marker можно выбрать подходящую конфигурацию маркера, размер которого задается значением в раскрывающемся списке MarkerSize. Цвета контура маркера и его внутренней области устанавливаются с помощью кнопок-списков MarkerEdgeColor и MarkerFace-Color соответственно.

Команды Edit | Axes Properties (Правка Свойства осей) и Edit | Current Object Properties (Правка| Свойства объекта) вызывают Property Editor (Редактор свойств) с одновременной настройкой на параметры соответствующего объекта.

Команда Edit | Find Files (Правка | Найти файлы) появилась только в MATLAB 7. Она позволяет устроить поиск заданного контекста во всех файлах текущего каталога. Аналогичным инструментом обладают практически все оболочки операционных систем и достаточно развитые системы программирования.

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

Кроме кнопок, обеспечивающих создание, открытие, сохранение и печать графического объекта, на панели инструментов находятся следующие кнопки (рис. 2.30):

• Edit Plot — включение режима выделения фафического объекта;

- Zoom In — увеличение масштаба изображения;

• Zoom Out — уменьшение масштаба изображения;

• Pan — захват кривой с целью ее перемещения в поле графика;

-Rotate 3D — вращение изображения (больший эффект достигается для ЗD-поверхностей);

• Data Cursor — включение режима, при котором точка графика, попавшая под курсор, сопровождается отображением значений координат;

• Insert Colorbar — включение столбика с палитрой цветов (Colormap), отражающего распределение высот z;

-Insert Legend — вставка автоматической легенды;

• Show Plot Tools — пристыковка к графическому окну средств редактирования и просмотра (Figure Palette (Редактор графического окна), Property Editor (Редактор свойств), Plot Browser (Просмотр графика));

- Hide Plot Tools — удаление средств редактирования и просмотра.

9.9. Окно настройки параметров печати (printdig)

Диалоговое окно, предназначенное для установки параметров печати, появляется в результате обращения к функции printdig (рис. 9.8).

Она допускает несколько форматов вызова:

printdig

printdig(hFig)

printdig('-crossplatform',hFig)

printdig('-setup',hFig)

Указатель hFig задается в том случае, если предполагаемые установки относятся к графическому окну, которое не является текущим. Параметр-crossplatform отображает диалоговое окно для подготовки печати на кросс-платформах Microsoft Windows и Macintosh. При его задании появляется окно.Основная особенность этого окна заключается в большом количестве доступных драйверов принтеров, вывод на которые возможен либо с использованием сетевых устройств печати, либо путем подготовки файлов и переноса их на другие компьютеры. Раскрывающийся список Driver (Драйвер) включает более 30 позиций.. Не менее впечатляет список возможностей, открывающихся по кнопке Options (Опции). Обращение printdlg (' -setup,fig) вынуждает диалоговое окно появиться в режиме установки.

 

 

Любой графический объект обладает определенным набором свойств, каждое из которых имеет индивидуальное имя. Для опроса текущего или установки нового значения того или иного свойства предназначены функции get и set:

v = get(h,'Свойство')

set(h,'Свойство',Новое_значение)

Первая из них возвращает значение указанного свойства, которым обладает графический объект с указателем h. Вторая изменяет текущее значение указанного свойства. Обе функции допускают различные варианты обращения. В качестве первого аргумента может выступать массив указателей, и тогда соответствующая операция распространяется на группу объектов. Результат, возвращаемый функцией get, в этом случае представлен массивом ячеек, длина которого совпадает с длиной вектора h. В каждую ячейку результата заносится значение указанного свойства для соответствующего объекта. Аргумент 'свойство’ тоже может быть представлен не только скалярным значением, но и массивом ячеек, значение каждой из которых определяет имя соответствующего свойства.

К функции get можно обратиться и с единственным аргументом — get(h). В этом случае она возвращает значения всех свойств указанного объекта в виде пар имя = значение

Функция set тоже допускает различные варианты обращения, основная идея которых заключается в задании множества пар "имя — значение":

set(h,'Свойство_1',Значение_1,'Свойство_2',Значение_2,...)

set(h,struct)

set(h,cell_name,cell_value)

В первом случае имена свойств и соответствующие им значения перечисляются в виде списка переменной длины. Во втором случае аналогичные пары задаются как значения полей структуры struct. В третьем случае группа имен задается ячейками массива cell_name, а соответствующий им набор значений — ячейками массива cell_value.

Корнем генеалогического дерева является класс Root, символизирующий экран дисплея. Единственным объектом этого класса выступает наше приложение, которое система создает автоматически. Полный перечень его свойств и набор соответствующих им значений можно получить, обратившись к функции get с нулевым указателем.

Свойство CurrentFigure задает номер текущего графического окна. В качестве такового может выступать только что созданное графическое окно либо активизированное пользователем или программой в результате выполнения одной из команд:

• figure (h) % — окно с указателем h выдвинуто на передний план;

• set (0, 'CurrentFigure',h) % — активизировано окно с указателем h.

Свойства Format и Formatspacing задают формат вывода числовых данных, наличие или отсутствие дополнительных пустых строк.

Свойство MonitorPositions определяет координаты левого верхнего угла монитора (0, 0) и разрешение в пикселах, установленное в данный момент (1024x768).

В свойстве units хранится установленная система измерения длин. Допустимый набор значений представляют следующие константы:

• normalized — при этом левым нижним углом поля вывода считается точка с координатами (0, 0), правым верхним — точка с координатами (1.0, 1.0). Приведением программных значений координат к фактическому размеру окна занимается система. Это позволяет менять размеры гра-

фического окна с одновременной адаптацией поля графика;

- pixels — все размеры задаются в пикселах, и пересчет программных координат в пиксели выполняется программой пользователя;

• inches — все размеры задаются в дюймах (1 дюйм = 2,54 см) и не меняются при изменении габаритов графического окна;

• centimeters — все размеры задаются в сантиметрах и не меняются при изменении габаритов графического окна;

• points — все размеры задаются в пунктах (1 пункт = 1/72 дюйма = 0,3528 мм) и не меняются при изменении габаритов графического окна;

• characters — размеры измеряются в "буквах". За ширину "буквы" принимается ширина буквы "х" шрифта, установленного в операционной системе по умолчанию, а за высоту — расстояние между базовыми линиями двух смежных строк текста. Выбор такой единицы измерения длины позволяет создавать приложения, имеющие одинаковый внешний вид на компьютерах, управляемых различными операционными системами.

По умолчанию для объекта Root измерения производятся в пикселях. Однако при построении графиков функций наиболее удобным является режим normalized, который и установлен для объектов типа Figure по умолчанию. Задание координат в единицах типа "сантиметры", "дюймы" или "пункты" полезно при выводе на принтер документов, где должны быть соблюдены абсолютные размеры.

Местоположение объекта в иерархии существующих объектов определяется свойствами Parent (родитель) и children (потомки). Первое из них представлено указателем на породивший объект, чьи данные и методы наследует текущий объект. В качестве значения второго свойства выступает вектор указателей на объекты, порожденные данным и не помеченные как невидимые. Естественно, что у объекта Root родитель отсутствует, а его дочерними объектами являются все видимые графические окна, созданные к настоящему моменту.

Свойство туре (тип) определяет принадлежность объекта тому или иному классу. Если класс Root представлен единственным объектом с типом Type=root, то другие классы могут быть представлены разными объектами с общим типом. Например, все графические окна имеют тип figure. Свойство Tag (дословно — ярлык, этикетка, бирка), значением которого может быть любая строка, присваиваемая пользователем.

Графические окна являются объектами, порождаемыми по шаблону класса Figure. Об этом свидетельствует свойство туре, которое для любого графического окна принимает значение figure. Существует несколько способов создания графических окон. Во-первых, можно прибегнуть к услугам функции figure:

» h_Fig = figure;

» h_Fig = figure('Свойство_1',Значение_1,'Свойство_2',Значение_2,...);

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

Положение вновь создаваемого графического окна на экране определяется его свойством Position, в качестве значений которого выступает четырех-элементный вектор [left bottom width height]. Смещения lef t и bottom задают положение нижнего левого угла, а два следующих компонента —ширину и высоту окна в пикселах.

Окну присвоен стандартный заголовок Figure 1. Дополнительный заголовок графического окна в виде строки хранится в свойстве Name. По умолчанию это свойство представлено пустой строкой, и в заголовках окон мы видим надписи типа Figure I, Figure 2, и т. д. Если свойству Name присвоить какое-либо значение, например, h_Fig.Name = 'Оптимизация f(x)', то заголовком окна будет строка вида:

Figure 1: Оптимизация f(x)

Можно отказаться от стандартной нумерации окон (Figure I, Figure 2 и т. д.), если присвоить свойству NumberTitle значение off.

Значение свойства color определяет цвет фона в графическом окне с помощью вектора из трех чисел, задающих интенсивность каждой из трех RGB-составляющих. По умолчанию у всех окон цвет фона серый, и ему соответствует комбинация [0.8 0.8 0.8].

Несколько свойств графического окна связано с получением твердой копии. При выводе на принтер или плоттер фоновый цвет может оказаться неприемлемым, т. к. созданный график лучше бы смотрелся на белом фоне (при этом можно было бы сэкономить и на расходе тонера). Если свойству invertHardcopy присвоено значение on, то MATLAB на время печати выполнит такую замену. В случае invertHardcopy=off принтер постарается тем или иным способом соблюсти цветовую гамму графического окна (цветной — цветом, черно-белый — полутонами). Свойства, начинающиеся со слова Paper, управляют параметрами страницы, на которой воспроизводится копия графического окна (табл. 7.2).

PaperUnits Установка единиц измерения (по умолчанию —centimeters)

PaperOrientation Ориентация листа бумаги, по умолчанию — портретная (portrait). Альтернативное расположение — альбомная (landscape)

РарегТуре Формат листа бумаги (по умолчанию — А4)

Paper size Размер листа бумаги [width height ] (по умолчанию —[210 297])

PaperPosition Четырехкомпонентный вектор [x l y l х2 у2], задающий положение прямоугольной области на листе, в которой должно быть воспроизведено графическое окно. Началом координат считается левый нижний угол листа. Точка (xl, yl) определяет положение левого нижнего угла прямоугольника, точка (х2, у2) — правого верхнего

PaperPositionMode Способ размещения графического окна на листе. ПриPaperPositionMode=manual положение рисунка задается вектором PaperPosition. При PaperPositionMode=auto система пытается отобразить окно в такой позиции, в какой оно находится на экране

 

 

7.3. Объект Axes

Объект Axes, представляющий график функции в графическом окне, содержит довольно много составляющих — собственно оси с их подписями и разметкой, линии графиков с их маркировкой и соответствующими подписями, легенды, возможность увидеть объект из разных позиций наблюдателя и многое другое.

Свойство осей Position позволяет нам определить положение осей в графическом окне. Например, оператор

h_Ax = axes('Position',[х у w h]);

создает объект типа Axes с указанной позицией и возвращает указатель на созданный объект. Координаты (х, у) задают позицию левого нижнего угла прямоугольного поля графика. Ширина w и высота h определяют размеры прямоугольника. Эти величины задаются в единицах, соответствующих значению свойства units. По умолчанию для осей MATLAB использует Units=normalized, когда точка (0, 0) соответствует левому нижнему углу, а точка (1.0,1.0)— верхнему правому углу графического окна. В пределах одного графического окна могут быть объявлены несколько осей (Пример 7.6. Несколько осе

» axes('position',[.1.1.8.6])

» mesh (peaks (40));

» axes('position',[.1.8.8.1])

» pcolor([l:10;l:10]);

Стиль линий, которыми рисуются оси графика, и их толщины регулируются свойствами LinestyieOrder и Linewidtn. Около 40 свойств управляют параметрами координатных осей. Комментарии к этим свойствам, повторяющимся по каждой из трех осей, приведены в табл. 7.3.

Еще несколько свойств принимают участие в оформлении поля графика:

• Title — заголовок графика;

• Projection — задание Проекции (orthographic или perspective);

• GridLineStyle — стиль построения крупной координатной сетки;

• MinorGridLinestyle — стиль построения мелкой координатной сетки;

• TickLength — двухкомпонентный вектор, задающий длины штрихов для 2D- и ЗО-графиков;

• TickDir — направление штрихов на осях (in — внутрь, out — наружу);

• TickDirMode — режим нанесения штрихов (auto или manual).

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

• FontName — имя шрифта;

• Fontunits — единицы измерения высоты символов;

• Fontsize — высота символов;

- FontWeight — признак утолщения контура (light — тонкий, normal — нормальный, demi — полужирный, bold — жирный);

• FontAngle — наклон шрифта (normal — прямой, italic — курсив, oblique — наклонный).

Свойства, названия которых включают сочетание AspectRatio, позволяют отказаться от автоматического масштабирования и переключиться в ручной режим управления шагами вдоль каждой из координатных осей. Для этих целей гораздо удобнее воспользоваться функцией axis: axis normal; axis square; axis equal;

Группа свойств, названия которых начинаются со слова camera, управляет параметрами точки зрения. В точке с координатами CameraPosition находится камера, наблюдающая за графическими объектами, размещенными на поле Axes. Оптическая ось камеры нацелена на точку с координатами cameraTarget. Угол обзора объектива камеры определяется значением параметра CameraViewAngle. Наконец, компоненты вектора CameraUpVector определяют поворот камеры вокруг оптической оси. Сцена, которую мы наблюдаем на экране, представляет собой изображение, запечатленное камерой. Каждый из перечисленных выше параметров либо выбирается системой автоматически, либо назначается пользователем. Варианты выбора определяются значениями свойств CameraPositionMode, CameraTargetMode, CameraViewAngleMode и CameraOpVectorMode.

7.4. Объект Line

Объекты типа Line создаются почти всеми функциями построения плоских и пространственных кривых (plot, semilogx, semilogy, loglog, plotyy, plot3), которые возвращают указатель на появляющуюся кривую. Еще один способ создания таких объектов предлагает функция line, допускающая несколько вариантов обращения:

h_Lin = line(X,Y); % построение плоской кривой

h_Lin = line(X,Y,Z); % построение пространственной кривой

h_Lin = line (X, Y, Z, 'свойство1’, значение1,…, ‘свойство2',значение2,...);

h_Lin = line ('свойство1', значение1,..., 'свойство2',значение2,...);

Для плоских кривых вектор х представляет собой набор значений независимой переменной, а вектор у — набор соответствующих значений функции у(х). Таким образом, каждая точка плоской кривой задается парой координат (xi, уi). В случае пространственной кривой каждая ее точка представлена тройкой координат (хi,yi,zi). Построение кривой происходит в области текущего объекта типа Axes, где каждая пара соседних точек соединяется отрезком прямой.

» x=0:0.1:2*pi;

» y=sin(x);

» h_lin=plot(x,y);

» get(h_lin)

По сравнению с предыдущими графическими объектами линия обладает совсем незначительным количеством свойств. Синусоида построена синим цветом (color=[0 0 1]). Этот цвет был выбран из последовательности цветов, заложенных в свойстве colorOrder объекта Axes. При построении следующего графика в поле тех же осей из списка ColorOrder будет выбран следующий цвет, и так до тех пор, пока не окажется исчерпанным весь список. Потом цикл повторится с самого начала.

Свойство EraseMode управляет режимом взаимодействия цвета пикселей создаваемой линии с цветом пикселей поля графика. Значение по умолчанию — normal — приводит к тому, что пиксели кривой вытесняют пиксели области рисования. Так строится нормальная кривая. Другими возможными значениями свойства EraseMode являются none (кривая не рисуется, воспроизводятся только маркеры), background (кривая прорисовывается цветом фона) и xor (цвета новых и старых пикселей взаимодействуют по операции "исключающее ИЛИ"). Повторное рисование кривой по себе же в режиме xor приводит к ее стиранию. При этом проявляется цвет пикселей области рисования, в который они были окрашены до предыдущего рисования.

График синусоиды построен сплошной линией (Linestyle=-). Когда график строится с помощью функции line(x,y,z) без указания стиля линии, то он выбирается автоматически из списка стилей, указанных в свойстве LinestyieOrder текущего объекта Axes (-,--,:,.:, none). Каждая новая линия строится своим стилем — по очередному значению в списке LineStyleOrder.

Толщиной линии управляет значение свойства LineWidth, которое задается в пунктах (1 пункт = 1/72 дюйма = 0,3528 мм).

Свойство Marker включает или отключает (попе) режим маркировки кривой. Размером маркеров управляет значение свойства MarkerSize, задаваемое в пунктах. Контуры маркера и его внутренняя область могут быть закрашены в цвета, определяемые значениями свойтсв MarkerEdgeColor И MarkerFaceColor.

Значениями свойств XData, YData и ZData являются координаты точек кривой. Пример построения линии с тенью. Идея примера заключается в построении двух слегка смещенных друг относительно друга графиков. Причем теневой график имеет несколько большую толщину линии. Приведенный в примере 7.8 фрагмент без изменений заимствован из файлов помощи.

» t = 0:pi/20:2*pi;

» h_Linl = plot(t,sin(t),'k');

» h_Lin2 = line(t+.06,sin(t),'LineWidth',4,'Color',[.8.8.8]);

>> set(gca,'Children',[h_Linl h_Lin2])

Первая команда формирует массив аргументов t, который используется во второй команде для построения обычной синусоиды черным цветом. Третья команда использует смещенный аргумент t+0.06 и строит в этих точках утолщенную синусоиду серого цвета. Затем построенная тень заслоняет большую часть первой синусоиды, и наблюдаемая картина производит грустное впечатление (рис. 7.7). Зато четвертая команда осуществляет перестройку дочерних линий, выводя на передний план основную синусоиду (рис. 7.8). Немного подумав, мы достигли такого же результата, изменив порядок построения кривых и сэкономив на этом одну команду:

» t = 0:pi/20:2*pi;

» h_Lin2 = plot(t+.06,sin(t),'LineWidth',4,'Color',[. 8.8.8]);

» h Linl = line(t,sin(t),'Color',[ 0 0 0]);


Дата добавления: 2015-11-04; просмотров: 21 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
Мелани Маршанд Мой муж - Господин 20 страница | 

mybiblioteka.su - 2015-2024 год. (0.024 сек.)