1 / 32

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

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

ardice
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Введение • matplotlib: • написан на Python • background – на C • автор – John Hunter • поддерживаются версии Python 2.4 – 2.6 • 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 • pyplot– набор функций, делающий matplotlibпохожим на MATLAB. • Все, что нарисовано, - фигура. • Каждая функция как-то по-своему меняет график.

  10. pyplot Простейшая программа, рисующая график выглядит так: >>>importmatplotlib.pyplotasplt >>>plt.plot ([1, 2, 3, 4]) >>>plt.ylabel (‘some numbers’) >>>plt.show () Немного изменив ее, получаем: >>> importmatplotlib.pyplotasplt >>> 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. Точечные графики importnumpyasnp importmatplotlib.pyplotasplt # evenly sampled time at 200ms intervals t = np.arange(0., 5., 0.2) # red dashes, blue squares and green trianglesplt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^') plt.show () importmatplotlib.pyplotasplt plt.plot([1,2,3,4], [1,4,9,16], 'ro') plt.axis([0, 6, 0, 20]) plt.show ()

  12. Подграфик и гистограмма importnumpyasnp importmatplotlib.pyplotasplt 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 () importnumpyasnp importmatplotlib.pyplotasplt deff(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. Элементы оформления importnumpyasnp importmatplotlib.pyplotasplt 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)) - 0.5 - 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. Интерактивные графики deftoggle_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 графики frommpl_toolkits.mplot3dimportAxes3D frommatplotlibimportcm frommatplotlib.tickerimportLinearLocator, FixedLocator, FormatStrFormatter importmatplotlib.pyplotasplt importnumpyasnp 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-x2)2 + (1 - x)2

  22. Colormaps

  23. Filters

  24. LaTeX rc('text', usetex=True) title(r"\TeX\ is Number $\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$!", fontsize=16, color='r')

  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 • FigureCanvasи Rendererобрабатывают все взаимодействия внутри программы • Artistотвечает за конструкции более высокого уровня – такие как представление фигур, линий и текста на экране, и их взаимного расположения. • Сам пользователь около 95% своего времени проводит взаимодействуя с Artist’ом.

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

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

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

More Related