forked from JMSwag/SimplePyScripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexm19.py
More file actions
116 lines (94 loc) · 5.51 KB
/
Copy pathexm19.py
File metadata and controls
116 lines (94 loc) · 5.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
__author__ = 'ipetrash'
## Использование библиотеки Matplotlib. Использование класса GridSpec для расположения
## графиков.
# Этот пример демонстрирует способ размещения графиков в окне с
# использованием класса GridSpec.
# Данный способ кажется более длинным, но зато он позволяет более наглядно
# описывать положения графиков в окне. Кроме того, он позволяет изменять размеры
# ячеек таблицы расположения графиков и имеет другие приятные возможности, о чем
# будет рассказано в отдельном примере этой шпрагалки.
# Суть нового метода расположения графиков заключается в том, что сначала создается
# экземпляр класса GridSpec, описывающий таблицу, а затем в функцию subplot передаются
# экземпляры класса SubplotSpec, которые получаются из класса GridSpec с помощью
# оператора индексирования ([...]). Оператор индексирвоания при этом может быть
# как одномерным, так и двумерным, причем в качестве индексов для ячеек таблиц
# можно указывать не только один индекс, но и интервал, тогда график будет занимать
# несколько клеток.
import math
import pylab
import matplotlib
def plotGraph ():
# Будем рисовать график этой функции
def func (x):
"""
sinc (x)
"""
if x == 0:
return 1.0
return math.sin (x) / x
# Интервал изменения переменной по оси X
xmin = -20.0
xmax = 20.0
# Шаг между точками
dx = 0.01
# Создадим список координат по оси X на отрезке [-xmin; xmax], включая концы
xlist = matplotlib.mlab.frange (xmin, xmax, dx)
# Вычислим значение функции в заданных точках
ylist = [func (x) for x in xlist]
pylab.plot (xlist, ylist)
if __name__ == '__main__':
# создаем таблицу (сетку) размером 4 x 4 ячеек
grid = matplotlib.gridspec.GridSpec(4, 4)
# Одномерное индексирование.
# 0-ая ячейка, начиная с левого верхнего угла
# График занимает одну ячейку
pylab.subplot (grid[0])
pylab.title ("Graph 1")
plotGraph()
# Одномерное индексирование.
# 1-ая ячейка, начиная с левого верхнего угла (0-ая строка, 1-ый столбец)
# График занимает одну ячейку
pylab.subplot (grid[1])
pylab.title ("Graph 2")
plotGraph()
# Двумерное индексирование.
# 1-ая строка, 0-ой столбец
# График занимает одну ячейку
pylab.subplot (grid [1, 0])
pylab.title ("Graph 3")
plotGraph()
# Двумерное индексирование.
# 0-ая строка. График занимает столбцы от 2 и до конца строки (2:)
# График занимает одну строку и два столбца (2-й и 3-й)
pylab.subplot (grid [0, 2:])
pylab.title ("Graph 4")
plotGraph()
# Двумерное индексирование.
# График занимает строки, начиная с 1 и до 2 включительно (1: 3)
# График занимает столбцы от 1 и до предпоследней ячейки включительно (1: -1)
# График занимает две строки и два столбца
pylab.subplot (grid [1: 3, 1: -1])
pylab.title ("Graph 5")
plotGraph()
# Двумерное индексирование.
# График занимает строки, начиная со 2 и до конца всех строк (столбца) (2: )
# График занимает один столбец по горизонтали
# График занимает две строки и один столбец
pylab.subplot (grid [2:, 0])
pylab.title ("Graph 6")
plotGraph()
# Двумерное индексирование.
# График занимает строки, начиная с 1 и до последней строки включительно (1:)
# График занимает один последний столбец (-1)
# График занимает две строки и один столбец
pylab.subplot (grid [1:, -1])
pylab.title ("Graph 7")
plotGraph()
# Двумерное индексирование.
# График занимает одну последнюю строку (-1)
# График занимает два столбца: 1 и 2 (1: 3)
# График занимает одну строку и два столбца
pylab.subplot (grid [-1, 1: 3])
pylab.title ("Graph 8")
plotGraph()
pylab.show()