Григорий Рожков, 222гр. 09.11.2010. Введение matplotlib: o библиотека языка программирования Python o связка matplotlib – NumPy o кроссплатформенная библиотека.

Презентация:



Advertisements
Похожие презентации
Tool: Pareto Charts. The Pareto Principle This is also known as the "80/20 Rule". The rule states that about 80% of the problems are created by 20% of.
Advertisements

Using Dreamweaver MX Slide 1 Window menu Manage Sites… Window menu Manage Sites… 2 2 Open Dreamweaver 1 1 Set up a website folder (1). Click New…
Business Statistics 1-1 Chapter Two Describing Data: Frequency Distributions and Graphic Presentation GOALS When you have completed this chapter, you will.
Click to add title Template for Microsoft PowerPoint.
DRAFTING and DIMENSIONING 98. A properly dimensioned drawing of a part is very important to the manufacturing outcome. With CATIA, it can be a very simple.
Click to add title Vorlage für Microsoft PowerPoint.
Сатурн и его кольца на экране монитора Моделирование на языке программирования QBASIC.
Making PowerPoint Slides Avoiding the Pitfalls of Bad Slides.
Untitled-4 copy
Combination. In mathematics a combination is a way of selecting several things out of a larger group, where (unlike permutations) order does not matter.
Практическое программирование на Java к.ф.-м.н. Козлов Дмитрий Дмитриевич Кафедра АСВК, Лаборатория Вычислительных комплексов.
DRAFTING TECHNIQUES II 155. Auxiliary Views Auxiliary Views are easily made. When more specific detail of a part is needed, go to the VIEWS toolbar, then.
Lesson 3 - HTML Formatting. Text Formatting Tags TagDescription Defines bold text Defines big text Defines emphasized text Defines italic text Defines.
Who will Win in the Dash to the Finish? Click Here to Start.
Cisco Systems Switches - Catalyst 2960 | Enhanced Metafile.
Sun Proprietary/Confidential: Internal Use Only 1 Developer/Community Campaign Александр Щербатый Язык JavaFX Script – разработка приложений.
Statistics for Business and Economics, 6e © 2007 Pearson Education, Inc. Chap 1-1 Chapter 1 Why Study Statistics? Statistics for Business and Economics.
7/29/2015Image Processing 1 Image Processing Using Matlab*
WS11-1 WORKSHOP 11 ANCHOR LOADS AND BOUNDARY CONDITIONS USING A FIELD PAT301, Workshop 11, October 2003.
GALAXIES IN THE FIELD OF THE GAMMA-RAY BURST GRB I.V. Sokolov, Yu.V. Baryshev, T.A. Fatkhullin Results (counts of galaxies, photometric red shifts,
Транксрипт:

Григорий Рожков, 222гр

Введение matplotlib: o библиотека языка программирования Python o связка matplotlib – NumPy o кроссплатформенная библиотека o API* идентичный MATLAB *API – Application Programming Interface – интерфейс программирования приложений.

Введение 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.

Философия Пользователь должен иметь возможность создать простейший график, используя небольшое число команд.

Структура библиотеки Код библиотеки можно разделить на три части.

I pylab interface – набор функций, предоставленных matplotlib.pylab, позволяющий пользователю создавать графики с помощью кода, аналогичного коду MATLAB

II matplotlib frontend (matplotlib API) – набор классов, осуществляющий создание и последующее управление сложными графиками, фигурами, изображениями и т.п. Этот интерфейс ничего не знает о формате вывода объектов.

III backends - зависящие от устройства способы вывода графиков (aka рендеры), превращающие frontend объекты в объекты, которые можно вывести на печать или дисплей.

pyplot o pyplot – набор функций, делающий matplotlib похожим на MATLAB. o Все, что нарисовано, - фигура. o Каждая функция как-то по-своему меняет график.

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 ()

Точечные графики 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 ()

Подграфик и гистограмма 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()

Отрисовка фигур ells = [Ellipse(xy=rand(2)*10, width=rand(), height=rand(), angle=rand()*360) for i in xrange(NUM)]

Диаграмма >>>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'))

Улучшения диаграммы

Пирог pie(fracs, explode=explode, labels=labels, autopct='%1.1f%', shadow=True) title('Raining Hogs and Dogs', bbox={'facecolor':'0.8', 'pad':5})

Элементы оформления 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()

Полярные координаты subplot(211, polar=True)

Интерактивные графики 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()

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()

Функция Розенброка F(x,y) = 100. (y - x 2 ) 2 + (1 - x) 2

Colormaps

Filters

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)

Структура matplotlib API Интерфейс matplotlib состоит из трех слоев.

I matplotlib.backend_bases.FigureCanvas – область, на которой рисуется фигура.

II matplotlib.backend_bases.Renderer – объект, который знает как рисовать на FigureCanvas.

III matplotlib.artist.Artist – объект, который знает, как использовать Renderer, чтобы нарисовать что-либо на FigureCanvas.

Структура matplotlib API o FigureCanvas и Renderer обрабатывают все взаимодействия внутри программы o Artist отвечает за конструкции более высокого уровня – такие как представление фигур, линий и текста на экране, и их взаимного расположения. o Сам пользователь около 95% своего времени проводит взаимодействуя с Artistом.

Artists Существуют два типа Artist: I.primitive – представляет собой обычные графические объекты, такие как линии, текст, 2D графики и т.п. II.containers – места для размещения primitive (Axis, Axes и Figure).

Использование matplotlib matplotlib используется многими людьми во многих областях: o автоматическая генерация PostScript файлов для отсылки на печать o генерация png и gif – изображений для динамически генерирующихся веб-страниц o для математических исследований

Cпасибо за внимание!