Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Построение и форматирование графиков в среде Scilab

Покупка
Артикул: 792763.01.99
Доступ онлайн
500 ₽
В корзину
Рассмотрены возможности системы компьютерной математики Scilab в области визуализации данных. Приведены теоретический материал и примеры построения диаграмм, гистограмм, двумерных и трехмерных графиков, а также рассмотрены возможности форматирования графиков с использованием команд и меню графического окна. Для оценки уровня усвоения студентами пройденного материала предложены варианты заданий для самостоятельной работы. Предназначено для бакалавров, обучающихся по направлениям подготовки 18.03.01 «Химическая технология», 28.03.02 «Наноинженерия», 29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности», изучающих дисциплины «Информатика», «Информационные технологии», «Вычислительная математика», «Прикладная математика», «Компьютерная графика». Подготовлено на кафедре информатики и прикладной математики.
Титов, А. Н. Построение и форматирование графиков в среде Scilab : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева. - Казань : КНИТУ, 2020. - 108 с. - ISBN 978-5-7882-2867-9. - Текст : электронный. - URL: https://znanium.com/catalog/product/1904878 (дата обращения: 16.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное

образовательное учреждение высшего образования

«Казанский национальный исследовательский

технологический университет»

А. Н. Титов, Р. Ф. Тазиева

ПОСТРОЕНИЕ 

И ФОРМАТИРОВАНИЕ

ГРАФИКОВ В СРЕДЕ 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=sinxlnx. x принимает 

значения от 4 до 9 с шагом 0.4. На оси Х вместо значений аргумента 
проставить номера точек, по которым строится график. 

Программа:
clf();x=4:0.4:9; y=sin(x).*log(x);plot(y)

Рис. 1.1. График функции y=sinxlnx. По оси Х стоят номера точек, 

по которым строится график

Пример 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)

Для построения графиков сразу нескольких функций (напри-

1
2

sin(
мер,
; 
 
 
 
можно вос
)
- 
( )
),
1
y
sin x
в одном графическом окне
x
y
x
=
+
=

пользоваться разновидностью функции plot:
-->clf(); x=0:0.1:2*%pi; y1=sin(x); y2=sin(x)./(x+1); plot(x, y1, x, y2)
График будет построен линиями разного цвета. Аналогичный результат 
можно получить, используя две функции plot вместо одной:
-->x=0:0.1:2*%pi; y1=sin(x); y2=sin(x)./(x+1);  plot(x, y1), plot(x, y2)
Линии в этом случае будут одного цвета.

Команды scf(n) и figure(n) создают окно с номером n (если его не

существует) и/или делают его текущим. Очистить графическое окно 
можно командой clf(n). Команда clf() очищает текущее графическое 
окно.

Пример 1.4. Построить два графика в разных графических окнах. 

В графическом окне 1 – график функции y=sinx, во втором графическом 
окне – z=cosx. х принимает значения от 0 до 2 с шагом 0.1.

Решение. --> scf(1); clf();x=0:.1:2*%pi; y=sin(x); plot(x,y); scf(2); 

clf();z=cos(x); plot(x, z)

Заголовок текущего окна можно изменить командой xname.

--> xname('Новое окно') 

Добавить к графику сетку можно командой xgrid.

Синтаксис команды:
xgrid
xgrid(color)
xgrid(color, thickness)
xgrid(color, thickness, style)
color – целое число, задающее цвет сетки;
thickness – действительное число, задающее толщину сетки;
style – целое число. Указывает на стиль изображения сетки. 
Пример 1.5. Построить график функции y=sinх. x принимает зна-

чения от 0 до 2 с шагом 0.1. Добавить к графику сетку зеленого цвета
толщиной 2.5 стилем с номером 7.

Решение.
clf() 
x=[0:0.1:2*%pi]'; plot (x,sin(x));xgrid(3,2.5,7)

Доступ онлайн
500 ₽
В корзину