Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемvyahhi.spbsu.ru
1 Григорий Рожков, 222гр
2 Введение matplotlib: o библиотека языка программирования Python o связка matplotlib – NumPy o кроссплатформенная библиотека o API* идентичный MATLAB *API – Application Programming Interface – интерфейс программирования приложений.
3 Введение matplotlib: o написан на Python o background – на C o автор – John Hunter o поддерживаются версии Python 2.4 – 2.6 o tries to make easy things easy and hard things possible.
4 Философия Пользователь должен иметь возможность создать простейший график, используя небольшое число команд.
5 Структура библиотеки Код библиотеки можно разделить на три части.
6 I pylab interface – набор функций, предоставленных matplotlib.pylab, позволяющий пользователю создавать графики с помощью кода, аналогичного коду MATLAB
7 II matplotlib frontend (matplotlib API) – набор классов, осуществляющий создание и последующее управление сложными графиками, фигурами, изображениями и т.п. Этот интерфейс ничего не знает о формате вывода объектов.
8 III backends - зависящие от устройства способы вывода графиков (aka рендеры), превращающие frontend объекты в объекты, которые можно вывести на печать или дисплей.
9 pyplot o pyplot – набор функций, делающий matplotlib похожим на MATLAB. o Все, что нарисовано, - фигура. o Каждая функция как-то по-своему меняет график.
10 pyplot Простейшая программа, рисующая график выглядит так: >>>import matplotlib.pyplot as plt >>>plt.plot ([1, 2, 3, 4]) >>>plt.ylabel (some numbers) >>>plt.show () Немного изменив ее, получаем: >>> import matplotlib.pyplot as plt >>> plt.plot ([0, 1, 2, 1, 2]) >>> plt.xlabel (you read this^^) >>> plt.arrow (0, 0, 2, 1) >>> plt.axis([0, 10, 0, 10]) >>>plt.annotate(you are here!, xy=(2, 2), xytext=(5, 5) arrowprops=dict(facecolor=red', shrink=0.05)) >>>plt.grid (True) >>> plt.show ()
11 Точечные графики import matplotlib.pyplot as plt plt.plot([1,2,3,4], [1,4,9,16], 'ro') plt.axis([0, 6, 0, 20]) plt.show () import numpy as np import matplotlib.pyplot as plt # evenly sampled time at 200ms intervals t = np.arange(0., 5., 0.2) # red dashes, blue squares and green triangles plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^') plt.show ()
12 Подграфик и гистограмма import numpy as np import matplotlib.pyplot as plt mu, sigma = 100, 15 x = mu + sigma * np.random.randn(10000) # the histogram of the data n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75) plt.xlabel('Smarts') plt.ylabel('Probability') plt.title('Histogram of IQ') plt.text(60,.025, r'$\mu=100,\ \sigma=15$') plt.axis([40, 160, 0, 0.03]) plt.grid(True) plt.show () import numpy as np import matplotlib.pyplot as plt def f(t): return np.exp(-t) * np.cos(2*np.pi*t) t1 = np.arange(0.0, 5.0, 0.1) t2 = np.arange(0.0, 5.0, 0.02) plt.figure(1) plt.subplot(211) plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k') plt.subplot(212) plt.plot(t2, np.cos(2*np.pi*t2), 'r--') plt.show()
13 Отрисовка фигур ells = [Ellipse(xy=rand(2)*10, width=rand(), height=rand(), angle=rand()*360) for i in xrange(NUM)]
14 Диаграмма >>>plt.legend( (rects1[0], rects2[0]), ('Men', 'Women') ) >>>rects1 = plt.bar(ind, menMeans, width, color='r', yerr=menStd, error_kw=dict(elinewidth=6, ecolor='pink'))
15 Улучшения диаграммы
16 Пирог pie(fracs, explode=explode, labels=labels, autopct='%1.1f%', shadow=True) title('Raining Hogs and Dogs', bbox={'facecolor':'0.8', 'pad':5})
17 Элементы оформления import numpy as np import matplotlib.pyplot as plt styles = mpatch.BoxStyle.get_styles() figheight = (len(styles)+.5) fig1 = plt.figure(1, (4/1.5, figheight/1.5)) fontsize = 0.3 * 72 for i, (stylename, styleclass) in enumerate(styles.items()): fig1.text(0.5, (float(len(styles)) i)/figheight, stylename, ha="center", size=fontsize, transform=fig1.transFigure, bbox=dict(boxstyle=stylename, fc="w", ec="k")) plt.draw() plt.show()
18 Полярные координаты subplot(211, polar=True)
19 Интерактивные графики def toggle_images(event): 'toggle the visible state of the two images' if event.key != 't': return b1 = im1.get_visible() b2 = im2.get_visible() im1.set_visible(not b1) im2.set_visible(not b2) draw()
20 3D графики from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm from matplotlib.ticker import LinearLocator, FixedLocator, FormatStrFormatter import matplotlib.pyplot as plt import numpy as np fig = plt.figure() ax = fig.gca (projection='3d') X = np.arange (-5, 5, 0.25) Y = np.arange (-5, 5, 0.25) X, Y = np.meshgrid (X, Y) R = np.sqrt (X**2 + Y**2) Z = np.sin(R) surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet, linewidth=0, antialiased=False) ax.set_zlim3d(-1.01, 1.01) ax.w_zaxis.set_major_locator(LinearLocator(10)) ax.w_zaxis.set_major_formatter(FormatStrFormatter('%.03f')) fig.colorbar(surf, shrink=0.5, aspect=5) plt.show()
21 Функция Розенброка F(x,y) = 100. (y - x 2 ) 2 + (1 - x) 2
22 Colormaps
23 Filters
24 LaTeX title(r"\TeX\ is Number $\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$!", fontsize=16, color='r') rc('text', usetex=True)
25 Структура matplotlib API Интерфейс matplotlib состоит из трех слоев.
26 I matplotlib.backend_bases.FigureCanvas – область, на которой рисуется фигура.
27 II matplotlib.backend_bases.Renderer – объект, который знает как рисовать на FigureCanvas.
28 III matplotlib.artist.Artist – объект, который знает, как использовать Renderer, чтобы нарисовать что-либо на FigureCanvas.
29 Структура matplotlib API o FigureCanvas и Renderer обрабатывают все взаимодействия внутри программы o Artist отвечает за конструкции более высокого уровня – такие как представление фигур, линий и текста на экране, и их взаимного расположения. o Сам пользователь около 95% своего времени проводит взаимодействуя с Artistом.
30 Artists Существуют два типа Artist: I.primitive – представляет собой обычные графические объекты, такие как линии, текст, 2D графики и т.п. II.containers – места для размещения primitive (Axis, Axes и Figure).
31 Использование matplotlib matplotlib используется многими людьми во многих областях: o автоматическая генерация PostScript файлов для отсылки на печать o генерация png и gif – изображений для динамически генерирующихся веб-страниц o для математических исследований
32 Cпасибо за внимание!
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.