Практикум j практическое примщенше численных методов



Download 2,15 Mb.
bet30/83
Sana06.07.2022
Hajmi2,15 Mb.
#750238
TuriПрактикум
1   ...   26   27   28   29   30   31   32   33   ...   83
Bog'liq
python

Символ

Маркер

Символ

Маркер

) )

жирная точка

s’

квадрат

о’

круг

>р>

пятиконечная звезда



треугольник вершиной вниз




*

) - )

треугольник вершиной вверх




+




треугольник вершиной влево

>х>

X




треугольник вершиной вправо

d’

ромб






Замена строки
pit.plot(х, yl, х, у2, х, уЗ, ’:’)
в программе рисования графика на рис. 3.3 на строку pit.plot(х, yl, ’р’, X, у2, ’s’, х, уЗ, ’сН) дает рис. 3.4.





При выводе графика можно использовать различные цвета линий (табл. 3.7). Комбинируя типы линий, маркеров с цветом мы можем получить необхо­димое представление для графика. Например, при использовании функции plot(x, у, ’го: О график будет нарисован в виде пунктирной красной ли­нии с круговыми маркерами.

Таблица 3.7 Цвет графика

Символ

Цвет

Символ

Цвет

Ъ’

синий (blue)

т’

малиновый (magenta)

с»

циановый (cyan)

г’

красный (red)

*g*

зеленый (green)

V’

белый (white)

к’

черный (black)

Г

желтый (yellow)






Изменить график можно используя различную толщину линий и размер мар­кера. Для этого задаются аргументы linewidth. (lw) и markersize (ms) функ­ции plot О, например, plot(x, у, lw=2, ws=4), по умолчанию оба парамет­ра равны 1.





Элементы оформления
Дополнительную смысловую нагрузку графику придают его заголовок, на­звание осей, координатная сетка и легенда. В пакете Matplotlib эти возможно­сти поддерживаются функциями titleO, xlabel(), ylabelO, gridO, legendO.
Функция titleO помещает заголовок (строка с названием обязательный аргумент) па график. Можно использовать команды издательской системы ВТ^Кдля маггемати чес кого текста. Для поддержки русского языка в Matplotlib нужны специальные усилия, поэтому на первых порах лучше использовать английский язык. Для контроля размера шрифта используется параметр fontsize со значениями: ’large’, ’medium’, ’small’ либо явный размер. По­ложение заголовка по вертикали определяется параметром verticalalign- ment (va), который выбирается из: ’top’, ’baseline’, ’bottom’, ’center’. Положение по горизонтали определяется horizontalalignment (ha) со значе­ниями ’center’, ’left’, ’right’.
Для надписей на осях используются функции xlabelQ, ylabelO. Функция axis() управляет диапазонами изменения по осям х и у. Новые диапазоны задаются командой axis(xmin, xmax, ymin, ушах). Кроме этого функция имеется возможность дополнительных манипуляций с осями. Например, ко­манда axis (’off ’) удаляет оси, axis (’equal’) — выравнивает диапазоны изменения по осям и т.д.
При рисовании нескольких графиков полезно идентифицировать отдельных графики с помощью легенды. Для добавления легенды используется функ­ция legendO при задании аргумента label в виде строки в функции plot() для каждого графика. Вторая возможность связана с явным заданием меток в виде списка или кортежа строк как аргумента функции legendO. Локали­зация легенды проводится по аргументу 1ос) (см. табл. 3.8).

Таблица 3.8 Полоо/сение легенды графика

Срока
best’

Код
0

center left’

6

upper right’

1

center right’

7

upper left’

2

lower center’

8

lower left’

3

upper center’

9

lower right’

4

center’

10

right’

5












Для отображения координатной сетки используется функция grid О с воз­можностью конкретизации свойств линий. Дополнительный контроль шага координатной сетки предоставляют функции xticksO и yticksO.
Ниже представлена программа, которая иллюстрирует некоторые возможно­сти по оформлению графика (рис. 3.5).
import mimpy as np import matplotlib.pyplot as pit x = np.linspace(0., 1., 100) yl = np.sin(2*np.pi*x) y2 = x*x
plt.plot(x, yl, label=’$sin(2\pi x)$’)
pit.plot(x, y2, label=’$x~2$’)
pit.title(’The fuctions $sin(2\pi x)$ and $x~2$’, \ fontsize=’large’, va=’bottom’, ha=’right’) plt.xlabel(’$x$’) pit.ylabel(’$f(x)$’) pit.legend(loc=’lower left’) pit.grid(True) pit. showO
Выше мы рассмотрели возможности рисования одного графика. Отметим некоторые основные возможности более сложной организации графическо­го материала. Свяжем интерактивное графическое окно или графический файл с фигурой (областью рисования) и будем рассматривать ее как контай- мент графиков. В своей вычислительной практике нам может понадобиться
The factions $in(2nx) and





подготовить несколько фигур и каждая их фигур может включать несколько графиков.
Пример работы с двумя фигурами, показанный на рис. 3.6, реализован сле­дующим образом.
import пшпру as пр
import matplotlib.pyplot as pit
x = np.linspace(0., 1., 100)
pit.figure(1)
pit.plot(x, x*x)
pit.figure(2)
plt.plot(x, x/(l+x))
pit.show()
Рассмотрим теперь проблему размещения нескольких графиков на одной фи­гуре. Первая возможность связана с использованием функции subplot (), ко­торая разделяет фигуру на несколько прямоугольных областей равного раз­мера, расположенных подобно элементам матрицы. Первый аргумент этой функции определяет количество строк (numrows), второй — количество коло­нок (numcols) в активной фигуре и третий — номер графика (fignum). Если


Рис. 3.6 Две фигуры



numrows+numcols < 10 то запятые ставить не обязательно, так что вместо subplot(1,2,1) можно использовать subplot(121).
На рис. 3.7 приведен результат работы программы:
import numpy as np
import matplotlib.pyplot as pit
x = np.linspace(0., 1., 100)
pit.figure(1)
pit.subplot(211)
pit.plot(x, x*x)
pit.subplot(212)
pit.plot(x, x/(1+x))
pit.show()
Имеется возможность ручного расположения графиков на фигуре. Для это­го нужно воспользоваться функцией axes(). Аргументом этой функции яв­ляется список [left, bottom, width, height], который задает положение графика на фигуре в относительных координатах (все значения изменяются от 0 до 1). Эти возможности иллюстрируются программой
import numpy as np





import matplotlib.pyplot as pit x = np.linspace(0., 1., 100) pit.figure(1)
pit.axes( [0.05, 0.05, 0.6, 0.6]) pit.plot(x, x*x)
pit.axes([0.35, 0.35, 0.6, 0.6]) pit.plot(x, x/(1+x)) pit.show()
результатом работы которой является рис. 3.8.
ID графики
К базовым возможностям любого программного инструментария научной ви­зуализации относятся графическое представлении одномерных и двумерных расчетных данных. Примеры использования функции plot О, которые при­ведены выше, демонстрировали возможность строить графики зависимостей У = /(ж) (одномерные функциональные зависимости). Остановимся на дру- гих возможностях Ш графики в пакете Matplotlib.


Рис. 3.8 Ручное задание положения графиков



Для отображения графиков величин, который заданы с погрешностью, ис­пользуется функция errorbarO. После массива абсцисс и массива ординат в качестве третьего аргумента передается погрешность ординаты. Расширен­ные возможности включают погрешности в задании абсциссы. Пример ис­пользования функции errorbarO приведен ниже, результат — на рис. 3.9.
import пшпру as пр import matplotlib.pyplot as pit x = np.linspace(0., 1., 100) у = np.exp(-x)
e = 0.l*np.random.normal(0, 1, 100) pit.errorbar(x, y, e, fmt=,.0 pit.showО
Простейший способ построения графиков в полярных координатах (р, ф) свя­зан с использованием функции polar О вместо plot О. Первый аргумент этой функции угол р. Программа для рисования кардиоиды :
import пшпру as пр import matplotlib.pyplot as pit phi = np.linspace(0., 2*np.pi, 100) ro = 5*(1 + np.cos(phi)) pit.axis(’off’)





pit.title(’Cardioid’) pit.polar(phi, ro) pit.show()
Функция axis (’off ’) используется для того, чтобы не рисовать (рис. 3.10) декартовы оси, которые рисуются по умолчанию.
Для создания более обозримого графика вдоль одной или обеих координат­ных осей можно выбирать логарифмический масштаб. Для построения таких графиков вместо plot О используются функции loglogO (логарифмический масштаб по обеим осям), semilogxO (логарифмический масштаб по оси ж), semi logy (логарифмический масштаб по оси у). Примером является график на рис. 3.11, который получен с использованием следующей программы.
import numpy as np
import matplotlib.pyplot as pit
x = np.linspace(0., 1., 100)
у = np.exp(-10*x*x)
pit.semilogy(x,у)
pit.show()
Для графическое изображение зависимости частоты попадания элементов выборки от соответствующего интервала группировки используются гисто-
Carc?ioid





Рис. ЗЛО Полярные координаты
граммы. Возможность построения гистограмм реализуется функцией hist О, первый аргумент которой есть массив данных, а второй задает число интерва­лов. Здесь приведен пример трех гистограмм для выборки из 250, 500 и 1000 случайных нормально распределенных величин соответственно (рис. 3.12).
import numpy as np import matplotlib.pyplot as pit mu = 1 sigma =0.2
x = mu + sigma*np.random.randn(1000) plt.hist(x, 25) pit.show()
Иногда приходиться используют для визуализации результатов различного рода диаграммы — столбцовые и круговые. Для рисования столбцовых диа­грамм используется функция bar О (barh() для горизонтальных). Пример использования (см. рис. 3.13) иллюстрируется программой:
import numpy as np
import matplotlib.pyplot as pit
pos = np.linspace(0., 1., 10)


Рис. 3.11 Логарифмический масштаб



val = 3 + np.random.randn(10)
plt.barCpos, val, align=>center9, width=0.1, colors m’) pit.show()
Подобные инструменты характерны для деловой графики при небольшом объеме представляемых данных и не имеют большого значения для научных вычислений.
2D графики
При проведении численных расчетов большое внимание уделяется визуализа­ции двумерных данных. На этой основе реализуются те или иные инструмен­ты для представления и более общих трехмерных данных, используя визуа­лизацию па отдельных поверхностях и сечениях. Здесь мы отметим основные возможности построения 2D графиков в пакете Matplotlib.
Рассматривается задача построения графика двумерной функции z = /(ж, 2/). Считается, что значения заданы на прямоугольной сетке, т.е. двумерный мас­сив (матрица) размерности тхп. Массивы х и у могут быть векторами раз­мерности п и га соответственно или матрицами (с одинаковыми строками или столбцами) 'гой же размерности, что и г.



Download 2,15 Mb.

Do'stlaringiz bilan baham:
1   ...   26   27   28   29   30   31   32   33   ...   83




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish