Построение и форматирование графиков в среде Scilab
Визуализация данных в Scilab: Руководство по построению и форматированию графиков
Эта книга, разработанная для студентов бакалавриата, изучающих информатику, информационные технологии, вычислительную и прикладную математику, а также компьютерную графику, представляет собой подробное руководство по визуализации данных в среде Scilab. Авторы, опытные преподаватели, стремятся облегчить восприятие материала, снабдив пособие большим количеством примеров и пояснений.
Двумерная графика: от простых графиков до гистограмм
В первой части книги рассматриваются основы построения двумерных графиков. Особое внимание уделяется функциям plot
, plot2d
и их разновидностям (plot2d2
, plot2d3
, plot2d4
), которые позволяют создавать различные типы графиков функций одной переменной. Детально разбирается синтаксис этих функций, включая использование параметров для настройки внешнего вида графиков: стиль линий, цвет, маркеры, подписи осей и легенды. Отдельное внимание уделяется функции plotimplicit
, предназначенной для построения графиков неявно заданных функций, и функциям для работы с полярными координатами. Завершает раздел рассмотрение построения гистограмм и круговых диаграмм с использованием функций bar
, histc
, histplot
и pie
. Приводятся примеры, демонстрирующие различные способы визуализации данных, включая построение гистограмм распределения, диаграмм частот и круговых диаграмм для представления долей.
Трехмерная графика: создание поверхностей и гистограмм
Вторая часть посвящена построению трехмерных графиков. Рассматриваются функции plot3d
, plot3d1
, plot3d2
, plot3d3
, mesh
и surf
. Подробно описывается синтаксис каждой функции, включая использование параметров для управления внешним видом трехмерных поверхностей: углы обзора, цвета, сетки, рамки и подписи осей. Приводятся примеры построения различных типов трехмерных графиков, включая графики функций двух переменных, поверхности, заданные набором граней, и трехмерные гистограммы. Особое внимание уделяется функциям meshgrid
, genfac3d
, nf3d
и hist3d
, которые упрощают процесс создания трехмерных визуализаций.
Форматирование графиков: настройка внешнего вида
Третья часть посвящена форматированию графиков. Рассматриваются команды title
, xtitle
, label
и legend
, которые позволяют добавлять заголовки, подписи осей и легенды, а также настраивать их внешний вид. Подробно описываются параметры, позволяющие изменять шрифт, размер, цвет и положение надписей. Приводятся примеры, демонстрирующие различные способы оформления графиков для улучшения их наглядности и информативности.
Редактирование графических объектов: использование дескрипторов
Четвертая часть книги посвящена редактированию свойств графических объектов с использованием дескрипторов и команды get
. Объясняется концепция объектно-ориентированного программирования в контексте графики Scilab. Рассматриваются различные типы графических объектов (Figure, Axes, Compound, Polyline, Label, Legend) и их свойства. Приводятся примеры, демонстрирующие, как использовать дескрипторы для изменения цвета, толщины, стиля линий, шрифта, размера и положения надписей, а также других параметров графических объектов.
Работа с графическим окном: инструменты редактирования
В заключительной главе рассматриваются инструменты редактирования графического окна, доступные через меню. Описываются основные пункты меню, позволяющие изменять свойства графического окна, осей, кривых, маркеров и других элементов графика. Приводятся примеры, демонстрирующие, как использовать инструменты редактирования для настройки внешнего вида графиков.
Текст подготовлен языковой моделью и может содержать неточности.
- ВО - Бакалавриат
- 18.03.01: Химическая технология
- 28.03.02: Наноинженерия
- 29.03.04: Технология художественной обработки материалов
- 29.03.05: Конструирование изделий легкой промышленности
Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «Казанский национальный исследовательский технологический университет» А. Н. Титов, Р. Ф. Тазиева ПОСТРОЕНИЕ И ФОРМАТИРОВАНИЕ ГРАФИКОВ В СРЕДЕ SCILAB Учебно-методическое пособие Казань Издательство КНИТУ 2020
УДК 004.42(075) ББК 32.97я7 Т45 Печатается по решению редакционно-издательского совета Казанского национального исследовательского технологического университета Рецензенты: д-р техн. наук, проф. М. Х. Хайруллин канд. экон. наук О. С. Семичева Т45 Титов А. Н. Построение и форматирование графиков в среде Scilab : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева; Минобрнауки России, Казан. нац. исслед. технол. ун-т. – Казань : Изд-во КНИТУ, 2020. – 108 с. ISBN 978-5-7882-2867-9 Рассмотрены возможности системы компьютерной математики Scilab в об ласти визуализации данных. Приведены теоретический материал и примеры построения диаграмм, гистограмм, двумерных и трехмерных графиков, а также рассмотрены возможности форматирования графиков с использованием команд и меню графического окна. Для оценки уровня усвоения студентами пройденного материала предложены варианты заданий для самостоятельной работы. Предназначено для бакалавров, обучающихся по направлениям подготовки 18.03.01 «Химическая технология», 28.03.02 «Наноинженерия», 29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности», изучающих дисциплины «Информатика», «Информационные технологии», «Вычислительная математика», «Прикладная математика», «Компьютерная графика». Подготовлено на кафедре информатики и прикладной математики. ISBN 978-5-7882-2867-9 © Титов А. Н., Тазиева Р. Ф., 2020 © Казанский национальный исследовательский технологический университет, 2020 УДК 004.42(075) ББК 32.97я7
О Г Л А В Л Е Н И Е Введение......................................................................................................4 1. ПОСТРОЕНИЕ ГРАФИКОВ ФУНКЦИЙ ОДНОЙ ПЕРЕМЕННОЙ 6 1.1. Функция plot ...................................................................................6 1.2. Функция plot2d .............................................................................15 1.3. Функции plot2d2, plot2d3, plot2d4...............................................25 1.4. Функция plotimplicit.....................................................................29 1.5. Графики в полярной системе координат....................................38 1.6. Построение гистограмм. Операторы bar, histc, histplot и pie....41 2. ПОСТРОЕНИЕ ТРЕХМЕРНЫХ ГРАФИКОВ...................................53 2.1. Функция plot3d .............................................................................53 2.2. Функции plot3d1, plot3d2, plot3d3, mesh и surf..........................60 3. ФОРМАТИРОВАНИЕ ГРАФИКОВ...................................................69 3.1. Команда title..................................................................................69 3.2. Команда xtitle................................................................................72 3.3. Команда label ................................................................................74 3.4. Команда legend .............................................................................78 4. РЕДАКТИРОВАНИЕ СВОЙСТВ ГРАФИЧЕСКИХ ОБЪЕКТОВ. ОПЕРАТОР GET.......................................................................................80 5. РАБОТА С ГРАФИЧЕСКИМ ОКНОМ..............................................97 Задания для самостоятельной работы...................................................103 Литература...............................................................................................106
В в е д е н и е К настоящему времени система компьютерной математики Scilab получила достаточно широкое распространение в вузах ввиду своих очевидных преимуществ перед своими более мощными и дорогостоящими аналогами Matlab, Mathcad и др. К основным преимуществам относятся прежде всего бесплатность системы, ее небольшой объем, относительная простота в использовании. Появилось и достаточное количество публикаций о возможностях системы и принципах работы с ней. Из числа известных авторам за 10 лет работы с системой публикаций на эту тему следует отметить работы [1–4]. Все они, как правило, содержат материал по широкому кругу вопросов применения пакета. Авторов данной работы интересовали прежде всего основные графические возможностей Scilab. В своей научной работе, связанной, в частности, с обработкой экспериментальных данных, авторы часто сталкивались с необходимостью построения гистограмм и графиков функций плотности различных распределений с целью первоначального представления о законе распределения полученных в ходе моделирования данных [8–9]. Вопросы построения различного вида графиков рассмотрены в каждой из работ [1–4] как часть (чаще всего небольшая по объему и не самая главная) излагаемого материала. Лишь в известной авторам работе [1] приведено достаточно детальное описание функций построения и форматирования графиков, однако на основе устаревшей версии среды Scilab – 4.1.1. В каждой новой версии пакета появлялись новые графические возможности системы и модифицировались уже существующие функции. Авторы поставили перед собой цель: собрать имеющуюся в литературе информацию по указанным вопросам и издать ее в виде отдельного пособия, дополнив его непереведенной информацией из справочной системы Scilab (версия 6.1.0). Авторы надеются облегчить восприятие изложенного в справоч ном разделе системы материала, снабдив пособие большим количеством примеров и пояснений к ним. Пособие включает в себя пять разделов. В первом разделе рас сматриваются вопросы построения двумерных графиков: работа функций plot и ее разновидностей plot2dx, построения гистограмм и диаграмм функциями bar, histplot и pie. Во втором разделе показано, как строить трехмерные графики функциями plot3d, plot3d1, plot3d2,
plot3d3, mesh и surf. Приведены примеры работы функций meshgrid, genfac3d, nf3d и hist3d. В третьем разделе рассмотрены вопросы форматирования графиков командами title, xtitle, label и legend. В четвертой части приведены примеры форматирования объектов, полученных в графическом окне, командой get. В заключительной главе показано, как можно изменить свойства объектов графического окна через пункт меню «Правка». Кроме самостоятельного интереса, построение графиков часто бывает полезным при решении задач вычислительной математики: решении нелинейных уравнений, задач аппроксимации и интерполяции, оптимизации, получении графического решения дифференциальных уравнений и других тем. Материал, изложенный в пособии, использовался при проведе нии лабораторных занятий по информатике, обработке экспериментальных данных, теории вероятностей и математической статистике, компьютерной графике, вычислительной математике. При изложении материала предполагалось, что читатель имеет базовые представления о работе в среде Scilab.
1 . П О С Т Р О Е Н И Е Г Р А Ф И К О В Ф У Н К Ц И Й О Д Н О Й П Е Р Е М Е Н Н О Й Графики в Scilab строятся в графических окнах. В одном графи ческом окне можно построить как один, так и несколько графиков. Можно каждый график построить в своем графическом окне. Для построения графика можно открыть графическое окно с номером n командой scf(n), а можно строить график в текущем графическом окне, т. е. в последнем окне, которое было активно до этого. Если никакого окна открыто не было, то по умолчанию текущее окно – окно с номером 0. Для очистки текущего графического окна используется команда clf(). Идея построения проста. 1. Открываем и очищаем (при необходимости) нужное нам гра фическое окно. 2. Задаем пределы изменения аргументов (если они есть, см. при мер 1.2). 3. С использованием подходящих для нашей цели функций строим нужный нам график. 4. Добавляем при необходимости название графика, названия осей, легенду. 5. С помощью редактора графического окна или с помощью гра фических дескрипторов форматируем график: меняем толщину, цвет, стиль линий графика, шрифт текстовых вставок, его размер и т. д. Для построения графиков двумерных поверхностей в Scilab рас смотрим функции plot, plot2d, plot2d2, plot2d3, plot2d4, bar, histplot и pie. 1 . 1 . Ф у н к ц и я p l o t Синтаксис функции: plot(y) plot(x, y) plot(x, fun) plot(x, list(fun, param)) plot(.., LineSpec)
plot(.., LineSpec, GlobalProperty) plot(x1, y1, LineSpec1, x2,y2,LineSpec2,...xN, yN, LineSpecN, GlobalProperty1,.. GlobalPropertyM) plot(x1,fun1,LineSpec1, x2,y2,LineSpec2,...xN,funN,LineSpecN, GlobalProperty1, ..GlobalPropertyM) plot(axes_handle,...) x – вектор или матрица действительных чисел. Если аргумент опущен, то предполагается, что х принимает значения от 1 до n, где n – число точек кривой, задаваемых параметром y; y – вектор или матрица действительных чисел; fun, fun1, .. – имя функции. Например, plot(x, sin). Если функция, график которой нужно построить, имеет входные аргументы, то функция и ее параметры могут быть определены как список. Например, plot(x, list(delip, -0.4)) (эквивалентно команде plot(x, (delip(x, -0.4))) см. пример на с. 9). LineSpec – это необязательный параметр, который используется для спецификации строящихся линий графика. Можно задать стиль линии, ее цвет, маркеры (маркер – изображение точек, по которым строится график) и т. д. Например, если мы хотим построить наш график пунктирной линией красного цвета с маркерами в виде ромба, мы можем записать в функции plot аргумент 'r--d' или '--dire' или '--reddiam' или 'diamondred--' (см. справку Scilab по LineSpec). Кроме пунктирной, тип линии может быть: сплошным (обозначается как -), штрихом, чередующемся с двумя точками (:), штрихом, чередующемся с одной точкой (-.). По умолчанию предполагается сплошной тип линии. GlobalProperty – это необязательный параметр, представляющий собой совокупность пар вида {Свойство,Значение}, которые определяют глобальные свойства, присущие всем кривым, создаваемым функцией plot. Название свойства – символьная переменная. Значение может быть действительным числом, целым числом или строкой (скаляром или матрицей) в зависимости от типа используемого свойства. Например, спецификация: красный цвет, стиль линии длинное тире-точка, маркер в виде ромба может быть записана так: 'Color', 'red', 'LineSt', '-.', 'Marker', 'diam'. Полный набор возможных свойств можно посмотреть в справке по GlobalProperty. axes_handle – с помощью этого параметра можно изменить зна чения свойств, установленных по умолчанию (см. команду gca). Простейшее обращение к функции – plot(y). В этом случае аргу ментом будут считаться номера точек вектора y.
Пример 1.1. Построить график функции y=sinxlnx. x принимает значения от 4 до 9 с шагом 0.4. На оси Х вместо значений аргумента проставить номера точек, по которым строится график. Программа: clf();x=4:0.4:9; y=sin(x).*log(x);plot(y) Рис. 1.1. График функции y=sinxlnx. По оси Х стоят номера точек, по которым строится график Пример 1.2. Построить график функции y в случае, когда y – матрица. Решение. clf() y=[2 3 4 5 6 7 4 3 2]; plot(y) В одном графическом окне будет построено три графика (по числу столбцов матрицы), каждый их которых будет построен по трем точкам (по числу строк матрицы). Значениями функции для построения каждого графика будут элементы соответствующего столбца. Аргументами для каждого графика будут точки 1, 2 и 3. Три полученные
точки для каждого графика будут соединены отрезками прямых. Полученный график приведен на рис. 1.2. Если же мы хотим, например, чтобы аргументом для построения первой кривой были числа -1,3,6; для второй 3, 5, 7, а для третьей 1, 5, 8, то программа будет выглядеть так: clf() x=[-1,3,6; 3 5 7; 1 5 8]'; y=[2 3 4; 5 6 7 ; 4 3 2];plot(x,y) Рис. 1.2. График функции y. y – матрица Пример 1.3. Построить график функции y=sinx. х принадлежит интервалу [1, 10] и изменяется с шагом 0.1. Решение. Выполнив программу clf();plot(1:0.1:10, sin), мы полу чим график функции sinx. По оси Х будут отложены значения x. Можно самим создать функцию, график которой мы хотим по строить, и использовать для его построения третий из приведенных выше вариантов функции plot:
clf() function y=f(x);y=sin(x).*log(x);endfunction x=4:0.4:9;plot(x,f) хотя с таким же успехом вместо последней строки можно было записать plot(x,f(x)). Приведенная ниже программа вычисляет значения эллиптиче ского интеграла первого рода 2 2 2 0 (1 )(1 ) x k dt t c t − − c параметром ck=-0.4 (х принимает значения от 0 до 0.999 с шагом 0.05) и по полученным точкам строит график. clf();plot(0:0.05:0.999, list(delip, -0.4)) Эта программа эквивалентна следующей: clf();x=0:.05:0.999;d=delip(x,-0.4);plot(x,d); Рис. 1.3. График функции delip(0:0.05:0.999,-0.4)