{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Научная графика в Python\n", "\n", "Автор: Шабанов Павел Александрович\n", "\n", "E-mail: pa.shabanov@gmail.com\n", "\n", "URL: [Заметки по программированию в науках о Земле](http://progeoru.blogspot.ru/)\n", "\n", "Дата последнего обновления: 12.03.2017" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Преамбула\n", "%matplotlib inline\n", "\n", "import os\n", "import matplotlib.pyplot as plt\n", "from matplotlib import rcParams\n", "\n", "import numpy as np\n", "\n", "def save(name='', fmt='png'):\n", " pwd = os.getcwd()\n", " iPath = './pictures/{}'.format(fmt)\n", " if not os.path.exists(iPath):\n", " os.mkdir(iPath)\n", " os.chdir(iPath)\n", " plt.savefig('{}.{}'.format(name, fmt), fmt='png')\n", " os.chdir(pwd)\n", " #plt.close()\n", "\n", "rcParams['font.family'] = 'fantasy'\n", "rcParams['font.fantasy'] = 'Arial'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Глава 7 Мультиоконные рисунки\n", "\n", "### Содержание главы\n", "\n", "1. Методы создания мультиокон;\n", "\n", "2. Близкое расположение областей рисования;\n", "\n", "3. Автоматизированное создание мультиокон;\n", "\n", "4. Мультиокна разных размеров. Gridspec;\n", "\n", "5. \"Главное - чтобы костюмчик сидел\".\n", "\n", "В прошлых главах мы рассмотривали в основном простые графики, где область рисования Axes была одна. В это параграфе мы поговорим о сложных рисунках, которые могут содержать не одну, а несколько областей рисования. Вместо слова \"несколько\" можно было бы употребить слово \"много\", но лучше никогда не рисовать много графиков на одном рисунке. \n", "\n", "**Золотое правило:** \n", "\n", "> Недопустимо, если не все части или элементы рисунка понятны или хорошо различаемы на фоне остальных. Рисунок должен быть читаемым, а не коробкой, в которую автор напихал от жадности (или жёстких требований журнала/издателя) всё, что смог создать. Нужно следовать python-заповеди (см. `import this`): \"сложное лучше, чем запутанное\". Как сделать так, чтобы запутанные рисунки стали сложными, сохранив при этом функциональность и привлекательный вид, показано в этой главе.\n", "\n", "### Электронные ресурсы:\n", "\n", "+ [Кракткий курс лекций по расширенным возможностям matplotlib с рассмотрением subplots и GridSpec](http://www.astro.washington.edu/users/vanderplas/Astr599/notebooks/12_AdvancedMatplotlib);\n", "\n", "+ [Рецепты по работе с областями рисования из Сookbook/matplotlib](http://wiki.scipy.org/Cookbook/Matplotlib);\n", "\n", "+ [Примеры работы с методом subplots_adjust()](http://matplotlib.org/examples/pylab_examples/subplots_adjust.html);\n", "\n", "+ [Гид по tight_layout()](http://matplotlib.org/users/tight_layout_guide.html);\n", "\n", "+ [Документация по Gridspec](http://matplotlib.org/api/gridspec_api.html?highlight=gridspec#module-matplotlib.gridspec);\n", "\n", "+ [Примеры работы с Gridspec](http://matplotlib.org/users/gridspec.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7.1 Методы создания мультиокон\n", "\n", "В matplotlib реализовано несколько спобов создания рисунков с несколькими областями для диаграмм (multi-panel plots):\n", "\n", "1. **`fig.add_axes()`** - базовый метод, удобен при создании диаграммы-врезки;\n", "\n", "2. **`fig.add_subplot()`** - добавление одного subplot на рисунок. Удобно для отображения 2-3 диаграмм;\n", "\n", "3. **`plt.subplot()`** - аналогичный предыдущему по результату метод для pyplot;\n", "\n", "4. **`plt.subplots()`** - удобный метод для автоматизированного создания нескольких subplots;\n", "\n", "5. **`plt.GridSpec()`** - метод для объединения ячеек subplots в более сложные конфигурации. Позволяет создавать разные по форме subplots на рисунке.\n", "\n", "Первые два метода (с приставкой `add_`) являются более низкоуровнемыми, и для их вызова требуется объект Figure. Последние три метода реализованы в pyplot интерфейсе. Каждый из этих методов создаёт один или более экземпляров типа subplot (в примерах будет приведён точный тип этого объекта) или axes. Каждый такой объект - отдельная область рисования и к ней применимы все те приёмы, которые мы рассмотрели в предыдущей главе, когда работали с экземпляром-объектом типа axes. Хотя метод `fig.add_axes` создаёт объект типа Axes, а все остальные - типа AxesSubplot, то есть разные типы объектов, они являются родственными, и работать с ними можно одними и теми же методами.\n", "\n", "Самым простым способом разбить, то есть поделить, рисунок на несколько частей является способ `fig.add_subplot()`. Смысл создания subplots состоит в том, что они наполняют рисунок ячейками (как в таблице) в каждой из которой теперь можно создавать свой собственный график или диаграмму (или карту-схему). \n", "\n", "Метод `fig.add_subplot()` всегда имеет три обязательных аргумента: число ячеек по вертикали (число строк), число ячеек по горизонтали (число столбцов) и номер ячейки (отсчёт ведётся от 1 слева направо, сверху вниз). Три числа перечисленные через запятую (3,2,5) или триплет в виде одного числа (325), переданные методу fig.add_subplot(), создают экземпляр (instance) \"`matplotlib.axes._subplots.AxesSubplot`\", что является подвидом более широкого класса \"`matplotlib.axes`\".\n", "\n", "`fig.add_subplot()` оптимален, когда необходимо быстро изобразить несколько (обычно 2-3) графиков-диаграмм рядом. Желательно при этом, чтобы они не перекрывались, за исключением случаев, когда области рисунка \"слипаются\" и образуют общие границы (как по оси абсцисс, так и по оси ординат)." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Область 1 Axes(0.125,0.547727;0.775x0.352273)\n", "\n", "Область 2 Axes(0.125,0.125;0.775x0.352273)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Пример 7.1.1 Создание двух областей на рисунке с помощью fig.add_subplot()\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "fig = plt.figure()\n", "\n", "tri = 211\n", "ax1 = fig.add_subplot(tri)\n", "ax1.set_title(u'Область 1')\n", "ax2 = fig.add_subplot(2, 1, 2)\n", "ax2.set_title(u'Область 2')\n", "\n", "# Узнаём координаты областей, которые занимают subplots\n", "print u'Область 1', ax1\n", "print type(ax1)\n", "print u'Область 2',ax2\n", "\n", "# Нарисуем в каждом subplot линию сетки\n", "for ax in fig.axes:\n", " ax.grid(True)\n", " \n", "save('pic_7_1_1', fmt='png')\n", "save('pic_7_1_1', fmt='pdf')\n", " \n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Аналогичного результата можно добиться и \"в лоб\", то есть самостоятельно задать границы нужных областей. Для прямого выделения положения областей на рисунке нужно использовать метод `fig.add_axes()`. На рисунке в относительных координатах (от 0 до 1) можно задать несколько (сколько угодно) областей, на каждой из которых можно будет рисовать графики и диаграммы (не забываем про карты и изображения-фотографии). Каждая область задаётся отдельно и требует указать параметры границы в виде списка [левая, нижняя, ширина, высота]. Стоит отметить, что этот метод позволяет задать многие важные настройки создаваемой области рисования и в частности тип области рисования (если параметр `polar=True` или `projection='polar'`, то область рисования будет не прямоугольной, а круговой)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Область 1 Axes(0.125,0.547727;0.775x0.352273)\n", "\n", "Область 2 Axes(0.125,0.125;0.775x0.352273)\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEHCAYAAAC+1b08AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGjRJREFUeJzt3X2wXXV97/H3B0ggQjReGRUKGhShtkoDAtEoDBkeplfI\nlAAtE9t7QygMeIUO0FYLrdbp3FEqhhtkFOVBHnQIV0Sw+IBTac6EBAIInCoIaFozRYZbGJREhWBC\nvv1jrX1+m33P2fvss/Zea2Xtz2vmTPZaa2ft3/lkn2/W+a619k8RgZmZ7fx2qXoAZmY2GC7oZmYN\n4YJuZtYQLuhmZg3hgm5m1hAu6GZmDeGCbrUk6VxJ45Iek/SopJsk7d+2fR9JN0paJ+lhSfdKOqXK\nMU9F0gmSHql6HNZ8u1U9ALNOkj4LvBs4MSKeliTgz4D7JC2MiKeB64CPR8RDVY61G0lzgL8FPgI8\nVfFwbATINxZZnUjaD3gc2C8iNndsW0V2EPKXwHpgHXA8sAP4vxHxv/Pn7QAeBV4B5gC7R8QBkg4C\nPg/sCewLjAOnR8TLkhYCnwNeA/wW+CvgIOBc4M3ArsDTwK3AbOANEXF+j+/lj4Cj83H+Q0S8u0A0\nZj255WJ1sxB4vLOY5+4GPgC8ATgM2BoRvw8cCfyhpOVtzz0mIg4F/rRt3VnA9RGxCDgQOAD4oKRZ\nwB3AJ/OiezZwRUR8Kd/HF4FbIuLQiPgUMK2joIj4ZkT8JfDLaX/3ZgW4oFsdzZpi/e68upheARAR\nLwFfBk6a5O+o7fHHgOcl/TVZkd4X2IusvbM9Ir6b7+/hiDikYx/qWD5d0iN5/36VpN2n/d2ZDYkL\nutXNBuAdkt40ybbFZK2W58jaKa+0bduDV7+fJzuKvoXs6HsTcDnwMFlx3tb5fEm/J2nXKfYV5Efs\nZL8d7EfWojGrlAu61Up+wvNzwGpJ+7bWS1oBnAL8Y0RsA74NnJ9vm0vWTrk9b59AVqQ7nUDWy741\nX15I1ht/EghJx+X7OwxYQzoqV8d+Jo7YI2I7sIWsV29WKV/lYrUTEZdIOhP4pqQ9yFot9wPvjYjW\n1SJnAddLepysRfMV4F7gMeDuiPh1+y7zPy8hK/r/CfwHcBtwYET8Nr/kcZWky4CXgaV5sW79/ejY\n3+mSPkB2gvWn9D5C99UHNnS+ysXMrCGm1XKRtFDSmknWL5H0QH5Tx1mDH56ZmU1XzyN0SR8lu6nj\n1/nlXq31s4AfA4cDL5KdrDopIp4d3nDNzGwq0zlC30h2MqrzxNA7gY0RsTk/SbWO7CYKMzOrQM+C\nHhHfALZPsum1QPvNH78CXjegcZmZWZ+KXOWyGZjbtjyXSe6Ik+SzrmZmMxARnZ2Rropch/4E2Q0g\nr5c0m6zdct8Ug/JXBMuXL698DHX5chbOwll0/5qJfo7QA0DSMmCviLhG0kXA98j+Y7guIp6Z0ShG\nxPz586seQm04i8RZJM6imGkV9IjYBCzKH69uW/8t4FtDGZmZmfXFt/6XaN68eVUPoTacReIsEmdR\njAt6iRYsWFD1EGrDWSTOInEWxQz91n9JMezXMDNrGklEiVe5mJlZjbigl2hsbKzqIdSGs0icReIs\ninFBNzNrCPfQzcxqyD10M7MR5oJeIvcHE2eROIvEWRTjgm5m1hDuoZuZ1ZB76GZmI6xrQZe0i6Qv\n5nOGrpH09o7tSyU9mM8reu5wh7rzc38wcRaJs0icRTG9Pm3xZGB2RCyStBBYma9ruRw4FPgN8GNJ\nqyNi8yT7MTOzIevaQ5e0Erg/Ir6WL/88IvZr2/4T4ATgF8DDwGERsaVjH+6hm5n1aSY99F5H6K8F\n2gv0K5J2iYgd+fJK4CGyI/TbOou5mZmVp1dB38Kr5w2dKOaS3gKcB7wVeBH4qqTTIuLrnTs544wz\nJmYimTdvHgsWLOCYY44BUs9sFJbb+4N1GE+Vy611dRlPlcvj4+NccMEFtRlPlcurVq0a6fpwww03\nADOfualXy+UUYElErJD0XuDjEXFivu0g4GvAERGxTdIq4NGIuLZjH2655MbGxib+IUeds0icReIs\nkpm0XHoVdAFfAA7JV60A3kOaU/RC4EPAVmAjcHZEbO/Yhwu6mVmfBl7QB8EF3cysf76xqOba+8ej\nzlkkziJxFsW4oJuZNYRbLmZmNeSWi5nZCHNBL5H7g4mzSJxF4iyKcUE3M2sI99DNzGrIPXQzsxHm\ngl4i9wcTZ5E4i8RZFOOCbmbWEO6hm5nVkHvoZmYjrOicokdIWivpHkm3SJo93OHu3NwfTJxF4iwS\nZ1FMryP0iTlFgb8hm6EImPho3auBMyLiKOBu4IBhDdTMzLqb8Zyikg4GPg88AbwL+HZEXDbJPtxD\nNzPr0zB66JPOKZo/3htYBFwJHAccK2lxPy9uZmaDM+M5RYHngY0R8SSApLuAw4E1nTvxnKKeU7Rz\nubWuLuOpctlzinpO0dbPQpVzis4ma7ccHxH/Juk24NqI+G7HPtxyyY15vsQJziJxFomzSKqYU3Qx\ncCkgYH1EXDjJPlzQzcz65DlFzcwawjcW1Vx7/3jUOYvEWSTOohgXdDOzhnDLxcyshtxyMTMbYS7o\nJXJ/MHEWibNInEUxLuhmZg3hHrqZWQ25h25mNsJc0Evk/mDiLBJnkTiLYlzQzcwawj10M7Macg/d\nzGyEuaCXyP3BxFkkziJxFsUUmiS67XlXS/r0cIZoZmbTMZ0JLk6KiDMlLQQujoiTO55zDrAcGIuI\nSybZh3voZmZ9GkYP/f3AXQARcT/ZFHPtL7gIOBL4EtkkF2ZmVpFec4pOOkl0ROyQtA/wCWApcHq3\nnXhOUc8p2rncWleX8VS57DlFPado62dh2HOKrgQ2RMSt+fJTEbF//vh8slbLr4A3A68hm3P0po59\nuOWSG/N8iROcReIsEmeRDGNO0Sknie543nLgdyPi4km2uaCbmfVpJgW9V8vlduB4Sevz5RWSlpFP\nEt3xXFdtM7MKdT0pGpkPR8T786+fRMTqzmIeETdOdoWLvVp7/3jUOYvEWSTOohjfWGRm1hD+LBcz\nsxryZ7mYmY0wF/QSuT+YOIvEWSTOohgXdDOzhnAP3cyshtxDNzMbYS7oJXJ/MHEWibNInEUxLuhm\nZg3hHrqZWQ25h25mNsJc0Evk/mDiLBJnkTiLYgrNKSppmaQNktZJukqSZy0yM6vIjOcUlTQH+BHw\nrojYKulmYHVE3NmxD/fQzcz6VPacoluB90XE1nx5N+Clfl7czMwGp1dBn3ROUZj4rPTnYGI6uj0j\n4vvDGWYzuD+YOIvEWSTOopheMxZtAea2Le8SETtaC3lx/wxwIHDqVDvxJNFe7lxuqct4qlweHx+v\n1XiqXB4fH6/VeMpcHithkuiuc4pKuoas9fIXUzXK3UM3M+vfMCaJFvAF4JB81QrgPcBewA/yr7Vt\nf+WKiLijYx8u6GZmfRp4QR8EF/RkbGxs4letUecsEmeROIvEd4qamY0wH6GbmdWQj9DNzEaYC3qJ\nOi/ZG2XOInEWibMoxgXdzKwh3EM3M6sh99DNzEaYC3qJ3B9MnEXiLBJnUYwLuplZQ7iHbmZWQ+6h\nm5mNMBf0Erk/mDiLxFkkzqKYonOKLpH0QL79rOEOdefX+qxncxbtnEXiLIrpNcHFycDsiFiUzym6\nMl+HpFnA5WTT0r0IrJf0TxHx7DAHvDN74YUXqh5CbTiLxFkkzqKYInOKvhPYGBGbI2IbsA44eiij\nNDOznmY8p2i+bXPbtl8Brxvg2Bpn06ZNVQ+hNpxF4iwSZ1FMrxmLVgIbIuLWfPmpiNg/f/xu4NLW\nlHSSLgfWRcQ3OvbhaxbNzGag38sWe/XQ1wNLgFvzOUV/2LbtCeAdkl4P/Ias3XJZ0QGZmdnM9Cro\ntwPHS1qfL6+QtAzYKyKukXQR8D2y1s11EfHMEMdqZmZdDP1OUTMzK4dvLDIza4iBFXTfhJRMI4tl\nkjZIWifpKkmNPc/QK4u2510t6dNlj69M03hfHCFpraR7JN0iaXZVYx22aWSxVNKDec04t6pxlkXS\nQklrJlnfX92MiIF8AacAX84fLwTuaNs2C/gp2WWNs4AHgDcO6rXr9tUjiznARmCPfPlmYEnVY64i\ni7bnnAPcC3yq6vFW+L4Q8Ajwtnz5bODgqsdc1fsC+Bkwr712VD3mIWbxUbILTu7tWN933Rxky8U3\nISXdstgKvC8itubLuwEvlTu8UnXLAkmLgCOBL5EVtSbrlsVBwPPARZLGgHkR8WTpIyxP1/cFsI2s\noM8he180+WTfRrL/4Drf/33XzUEWdN+ElEyZRWSeA5B0PrBnRHy/gjGWZcosJO0DfAI4j7Y3s6Rz\nJY1LekzSo5JukrR/2/Z9JN2Yt6wezn8dPaWk72daJB0o6Z8lPZJ/HxfR/Wdkb2ARcCVwHHCspMXl\njrpU3bKA7GNGHgIeBe6MiPbnNkpk9+5sn2RT33Wz12WL/dgCzG1b3iUiduSPN3dsmwv8coCvXTfd\nsiB/434GOBA4teSxla1bFqeRFbLvAG8GXiPpD4BdgRMj4un8/MKfAfdJWhgRTwPXAR+PiIdK+y76\ndz1wfUR8WdJrgQeBf2XqLJ4nOxp7EkDSXWRHrf9fX7UhpnxfSHoL2X/ybyX7nKivSjotIr5e/jAr\n1XfdHOQR+nrggwDdbkLKT/QcDdw3wNeum25ZQNZe2B1Y2tZ6aaops4iIKyPi8IhYDFwK3AkcBfxJ\nXrhbv9F8Bfg6cLGk3YE3Av8jP/L9kaS/a+1T0g5JP8yPjJ+Q9LN8/UH5EfO9kjZJuiPfV+uE1P35\nvh6StFjSOfk+npH0bP74EkmflHTlNL7va4HV+fewhezX6v83VRbAvwN7tZ0cPIrs6LSpuv2M7AG8\nArycF/lnydovo6b/ujnAxr6Aq8j+odaT9QSXAWfn208ia+r/APhw1ScihnySY8osgEPJ3qxr2r5O\nrnrMVWTR8bzlwG3AA1PsZwkwDuwL7CD72AnIeqzrgOX58g7gv+WP3wP8LH/8GeBD+ePdyI6Wl5Kd\nbHoG+O/5tsOAH7a97t8Dn+tYvrLPDP6Q7MjqTT1+RhYD9+c/J/+n6n+7Kt8XwIVkv9XcQ/bbzm5V\nj3nIecwnPylapG76xiKrDUmnAn8XEYdOsu004G+BE4GfA78T+Z3Jks4kK8h/LGkHsHdE/ELS4cCt\nEXFA3ro5ATgEOBj4I+Ai4DHgm5F/RtEkr/tJ4A0RcX7b8v8CniY7UbcW+FhEvDzF318OfBY4PSL+\nZQaxmE2bbyyyOtlA9ivmmybZtpjsSO45st9wXmnbtgevfi9PdpRyC9lvSJvIPsf/YbKjxG2dz5f0\ne5J2nWJfAdyS/6dzJLAf8FedL6bMSuCTwLEu5lYGF3Srjcj65p8DVkvat7Ve0gqyy7r+MbLLt74N\ntI6Y5wJnAbcrm3QFsiLd6QTgHyL/5FCya593BZ4EQtJx+f4OI2uDta666byUTK11EbGd7OTenEle\n7wqyPvgREdF5DsVsKAZ5lYtZYRFxSd5C+aakPchOHt8PvDcinsqfdhZwvaTHyXrgXyG7Mekx4O6I\n+HX7LvM/LyEr+v8J/AdZv/7AiPhtfsnjKkmXAS+Tnaze3vb3o2N/p0v6ALAn2Y0frzpCzy+x/AjZ\nbwP/rHQj8KqIuHGG0Zj15B66mVlDTKvlMrDPGTAzs6HpeYQu6aNkN3b8OiIWta2fBfyYtkmigZPC\nk0SbmVViOkfoA/ucATMzG56eJ0Uj4huS5k+yaVqfMyDPKWpmNiPR5xSeRS5bnPbnDFR9F1ZdvpYv\nX175GOry5SychbPo/jUTRQr6qH0+i5lZrfVzHXr2AQyeJHrG5s+fX/UQasNZJM4icRbFTKugR8Qm\nss9qJiJWt63/FvCtoYysgY455piqh1AbziJxFomzKMa3/puZNYQLuplZQwz91n9JMezXMDNrGklE\niZctmplZjbigl2hsbKzqIdSGs0icReIsinFBNzNrCPfQzcxqyD10M7MR5oJeIvcHE2eROIvEWRTj\ngm5m1hDuoZuZ1ZB76GZmI6xrQZe0i6Qv5nOGrpH09o7tSyU9mM8reu5wh7rzc38wcRaJs0icRTG9\nPm3xZGB2RCyStBBYma9ruRw4FPgN8GNJqyNi8yT7MTOzIevaQ5e0Erg/Ir6WL/88IvZr2/4T4ATg\nF8DDwGERsaVjH+6hm5n1aSY99F5H6K8F2gv0K5J2iYgd+fJK4CGyI/TbOou5mZmVp1dB38Kr5w2d\nKOaS3gKcB7wVeBH4qqTTIuLrnTs544wzJmYimTdvHgsWLJj4IPtWz2wUltv7g3UYT5XLrXV1GU+V\ny+Pj41xwwQW1GU+Vy6tWrRrp+nDDDTcAM5+5qVfL5RRgSUSskPRe4OMRcWK+7SDga8AREbFN0irg\n0Yi4tmMfbrnkxsbGJv4hR52zSJxF4iySmbRcehV0AV8ADslXrQDeQ5pT9ELgQ8BWYCNwdkRs79iH\nC7qZWZ8GXtAHwQXdzKx/vrGo5tr7x6POWSTOInEWxbigm5k1hFsuZmY15JaLmdkIc0EvkfuDibNI\nnEXiLIpxQTczawj30M3Masg9dDOzEeaCXiL3BxNnkTiLxFkU44JuZtYQ7qGbmdWQe+hmZiOs6Jyi\nR0haK+keSbdImj3c4e7c3B9MnEXiLBJnUUyvI/SJOUWBvyGboQiY+Gjdq4EzIuIo4G7ggGEN1MzM\nupvxnKKSDgY+DzwBvAv4dkRcNsk+3EM3M+vTMHrok84pmj/eG1gEXAkcBxwraXE/L25mZoMz4zlF\ngeeBjRHxJICku4DDgTWdO/Gcop5TtHO5ta4u46ly2XOKek7R1s9ClXOKziZrtxwfEf8m6Tbg2oj4\nbsc+3HLJjXm+xAnOInEWibNIqphTdDFwKSBgfURcOMk+XNDNzPrkOUXNzBrCNxbVXHv/eNQ5i8RZ\nJM6iGBd0M7OGcMvFzKyG3HIxMxthLuglcn8wcRaJs0icRTEu6GZmDeEeuplZDbmHbmY2wlzQS+T+\nYOIsEmeROItiXNDNzBrCPXQzsxpyD93MbIQVmlO07XlXS/r0cIbYHO4PJs4icRaJsyhmxnOKtkg6\nh2wKOvdVzMwqNOM5RfPlRcCfA2uB342IiyfZh3voZmZ9KnVOUUn7AJ8AziOb4MLMzCpUZE7R08gm\niv4O8GbgNZIej4ibOnfiOUU9p2jncmtdXcZT5bLnFPWcoq2fhcrmFO143nLcculpzPMlTnAWibNI\nnEVS+pyibc9bDhwcEZdMsg8XdDOzPnlOUTOzhvCNRTXX3j8edc4icRaJsyjGBd3MrCHccjEzqyG3\nXMzMRpgLeoncH0ycReIsEmdRjAu6mVlDuIduZlZD7qGbmY0wF/QSuT+YOIvEWSTOohgXdDOzhnAP\n3cyshtxDNzMbYS7oJXJ/MHEWibNInEUxhSaJlrRM0gZJ6yRdlX/crpmZVWA6E1ycFBFnSloIXBwR\nJ+fb5gA/At4VEVsl3Qysjog7O/bhHrqZWZ+G0UN/P3AXQETcDxzetm0r8L6I2Jov7wa81M+Lm5nZ\n4Mx4kujIPAcg6Xxgz4j4/nCG2QzuDybOInEWibMopsgk0eTF/TPAgcCpU+3Ek0R7uXO5pS7jqXJ5\nfHy8VuOpcnl8fLxW4ylzeazqSaIlXUPWevmLqRrl7qGbmfWv1EmigR/kX2vb/soVEXFHxz5c0M3M\n+uRJomtubGxs4letUecsEmeROIvEd4qamY0wH6GbmdWQj9DNzEaYC3qJOi/ZG2XOInEWibMoxgXd\nzKwh3EM3M6sh99DNzEaYC3qJ3B9MnEXiLBJnUYwLuplZQ7iHbmZWQ+6hm5mNMBf0Erk/mDiLxFkk\nzqKYonOKLpH0QL79rOEOdefX+qxncxbtnEXiLIrpNcHFycDsiFiUzym6Ml+HpFnA5WTT0r0IrJf0\nTxHx7DAHvDN74YUXqh5CbTiLxFkkzqKYInOKvhPYGBGbI2IbsA44eiijNDOznmY8p2i+bXPbtl8B\nrxvg2Bpn06ZNVQ+hNpxF4iwSZ1FMrxmLVgIbIuLWfPmpiNg/f/xu4NLWlHSSLgfWRcQ3OvbhaxbN\nzGag38sWe/XQ1wNLgFvzOUV/2LbtCeAdkl4P/Ias3XJZ0QGZmdnM9CrotwPHS1qfL6+QtAzYKyKu\nkXQR8D2y1s11EfHMEMdqZmZdDP1OUTMzK4dvLDIza4iBFXTfhJRMI4tlkjZIWifpKkmNPc/QK4u2\n510t6dNlj69M03hfHCFpraR7JN0iaXZVYx22aWSxVNKDec04t6pxlkXSQklrJlnfX92MiIF8AacA\nX84fLwTuaNs2C/gp2WWNs4AHgDcO6rXr9tUjiznARmCPfPlmYEnVY64ii7bnnAPcC3yq6vFW+L4Q\n8Ajwtnz5bODgqsdc1fsC+Bkwr712VD3mIWbxUbILTu7tWN933Rxky8U3ISXdstgKvC8itubLuwEv\nlTu8UnXLAkmLgCOBL5EVtSbrlsVBwPPARZLGgHkR8WTpIyxP1/cFsI2soM8he180+WTfRrL/4Drf\n/33XzUEWdN+ElEyZRWSeA5B0PrBnRHy/gjGWZcosJO0DfAI4j+YXc+j+M7I3sAi4EjgOOFbS4pLH\nV6ZuWUD2MSMPAY8Cd0ZE+3MbJbJ7d7ZPsqnvujnIgr4FmNu+74jYkT/e3LFtLvDLAb523XTLotU/\n/CxwLHBq2YMrWbcsTiMrZN8BPgZ8SNL/LHl8ZeqWxfNkR2NPRsR2sqPXzqPWJpkyC0lvIftP/q3A\nfOBNkk4rfYTV67tuDrKgrwc+CNDtJqT8RM/RwH0DfO266ZYFZO2F3YGlba2Xppoyi4i4MiIOj4jF\nwKXAzRFxUzXDLEW398W/A3u1nRw8iuzotKm6ZbEH8Arwcl7knyVrv4yavutmrxuL+uGbkJIpswB+\nAJwJrAX+Jb/A5YqIuKOSkQ5f1/dFx3Ob3CeF3j8jfw7cnF/1tD4ivlvZSIevVxY3AvdK2krWY76h\nonGWKTs7XqBu+sYiM7OG8I1FZmYN4YJuZtYQLuhmZg3hgm5m1hAu6GZmDeGCbmbWEC7oZmYN8V/M\nBGFHugb/vQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Пример 7.1.2\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "fig = plt.figure()\n", "\n", "# В примере для задания границ областей была использована информация\n", "# о границах subplots из предыдущего примера\n", "\n", "ax1 = fig.add_axes([0.125, 0.547727, 0.775, 0.352273]) \n", "ax1.set_title(u'Область 1')\n", "ax2 = fig.add_axes([0.125, 0.125, 0.775, 0.352273]) \n", "ax2.set_title(u'Область 2')\n", "\n", "# Узнаём координаты областей, которые занимают subplots\n", "print u'Область 1', ax1\n", "print type(ax1)\n", "print u'Область 2',ax2\n", "\n", "# Нарисуем в каждом subplot линию сетки\n", "for ax in fig.axes:\n", " ax.grid(True)\n", " \n", "save('pic_7_1_2', fmt='png')\n", "save('pic_7_1_2', fmt='pdf')\n", " \n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "В примерах области ax1 - это экземпляры разных классов:\n", " \n", "> ax1 axes -> `matplotlib.axes._axes.Axes`\n", "\n", "> ax1 subplots -> `matplotlib.axes._subplots.AxesSubplot`\n", "\n", "Если вы хотите изменить размер и размещение экземпляра subplot после того, как он был создан, то можно использовать метод `ax.set_position()`.\n", "\n", "> Пример: `ax.set_position([0.1,0.1, 0.5, 0.5])`.\n", "\n", "### 7.2 Близкое расположение областей рисования\n", "\n", "Если создавать области рисования с помощью метода `fig.add_axes()`, то созданные области, которые имеют общее место на рисунке, будут перекрывать друг друга. Так как в matplotlib используется идеология рисования текущей области (\"current axis\"), то последнее нарисованное изображение одного уровня (области, линии и т.д.) будет перекрывать предыдущие.\n", "\n", "Вновь создавамая область рисования типа subplot вписывается в рисунок в границах, определяемых соответствующими параметрами rcParams:\n", "\n", "> `rcParams['figure.subplot.left'] = 0.125` # левая граница\n", "\n", "> `rcParams['figure.subplot.right'] = 0.9` # правая граница\n", "\n", "> `rcParams['figure.subplot.bottom'] = 0.125` # нижняя граница\n", "\n", "> `rcParams['figure.subplot.top'] = 0.9` # верхняя граница\n", "\n", "При использования методов `fig.add_subplot()` или `plt.subplots()` по умолчанию оставляется некоторое свободное пространство между создаваемыми областями. Изменяя размер этих \"буферов\" с помощью соответствующих параметров настройки rcParams, можно добиться эффекта соединения или склейки.\n", "\n", "> `rcParams['figure.subplot.hspace'] = 0.2 ` # определяет совокупное вертикальное расстояние между subplots\n", "\n", "> `rcParams['figure.subplot.wspace'] = 0.2` # определяет совокупное горизонтальное расстояние между subplots\n", "\n", "Для аналогичной настройки можно воспользоваться методом pyplot `plt.tight_layout()`. Данный метод позволяет \"навести красоту\" одной строчкой. Часто это очень экономит время от \"вылизывания\" пустяковых графиков до приличного вида. Метод имеет четыре параметра:\n", "\n", "+ **pad** - расстояние между краями рисунка Figure и краями subplots, выраженное в виде доли fontsize (см. rcParams['font.size']) \n", "\n", "+ **h_pad** - совокупное расстояние по вертикали между subplots. По умолчанию имеет значения pad_inches (rcParams['savefig.pad_inches'])\n", "\n", "+ **w_pad** - расстояние по горизонтали между краями соседних subplots. По умолчанию имеет значения pad_inches (rcParams['savefig.pad_inches'])\n", "\n", "+ **rect** - если задан, то это прямоугольник (левый, низ, правый, верх) в относительных координатах figure, в который будут вписаны все области subplots (включая подписи). По умолчанию (0, 0, 1, 1).\n", "\n", "В совокупности нижние четыре параметра - это те же самые параметры, которые используются в качестве входящих для параметра rect в методе `plt.tight_layout()`. Данным методом можно определять взаимное (не но отдельное) положение subplots и сдвигать их, как отдаляя их друг от друга, так и сближая (отрицательные значения h_pad и w_pad)." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Область 1 Axes(0.125,0.547727;0.775x0.352273)\n", "\n", "Область 2 Axes(0.125,0.125;0.775x0.352273)\n" ] }, { "data": { "image/png": "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\nqmuT7AVuqKorRo7/AfBM4E+B3wP2VNUDY3PYg5KkbWize1Dr/ZPv+4BDAFV1Z5I9Y8cfBnYBx4EA\nViJJ0oZYrwd1HnBsZPxIktHXvAH4NHAXcFtVjT5XM3D/uz+z6s+s+jOrdqx3BnUM2DkyXqiq4wBJ\nngxcBzwFeBB4V5IXVdWvjE9yzTXXsLi4CMCuXbvYvXs3S0tLwKO/DI6H48Fg0NR6HG+P8apW1tPy\neDAYNLWelsbLy8sMBoMTn+ebrU8Pan9VHUhyMXBjVV3WHXs68MvAs6rq4STLwF1V9faxOexBSdI2\ntNk9qPUKVICbgAu7hw4AFwE7qupgklcBLwYeAu4BXlZV3xybwwIlSdvQlhaoDXkDC9RJWVlZOXE6\nrenMqj+z6s+s+vMvSUiS5pJnUJKkmXgGJUmaSxaoxoxfFqzJzKo/s+rPrNphgZIkNckelCRpJvag\nJElzyQLVGPe/+zOr/syqP7NqhwVKktQke1CSpJnYg5IkzSULVGPc/+7PrPozq/7Mqh0WKElSk+xB\nSZJmYg9KkjSXLFCNcf+7P7Pqz6z6M6t2TC1QSRaS3JzkaJLDSS4YO/6sJLcn+WiS9yQ5Z3OXK0ma\nF+v9k+9XApdX1bVJ9gI3VNUV3bEAvwNcVVVfTvIy4Paq+sLYHPagJGkb2uoe1D7gEEBV3QnsGTn2\ndOA+4PokK8Cu8eIkSdKs1itQ5wHHRsaPJFl9zfnAJcCbgRcAz0/yvI1f4nxx/7s/s+rPrPozq3ac\ntc7xY8DOkfFCVR3v7t8H3LN61pTkEMMzrMPjk1xzzTUsLi4CsGvXLnbv3s3S0hLw6C+D4+F4MBg0\ntR7H22O8qpX1tDweDAZNrael8fLyMoPB4MTn+Wbr04PaX1UHklwM3FhVl3XHzgHuBi6tqi8l+VXg\n7VX14bE57EFJ0ja02T2o9QpUgJuAC7uHDgAXATuq6mC3pfd6IMCRqnrVGnNYoCRpG9rSiyRq6BVV\nta+7fbGqbq2qg93xw1W1t6qevVZx0skb35LRZGbVn1n1Z1bt8Iu6kqQm+bf4JEkz2ervQUmStCUs\nUI1x/7s/s+rPrPozq3ZYoCRJTbIHJUmaiT0oSdJcskA1xv3v/syqP7Pqz6zaYYGSJDXJHpQkaSb2\noCRJc8kC1Rj3v/szq/7Mqj+zaocFSpLUJHtQkqSZ2IOSJM0lC1Rj3P/uz6z6M6v+zKodUwtUkoUk\n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\nkyxQkqQm/X/eUaOo4is0twAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Пример 7.2.1\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "fig = plt.figure()\n", "\n", "ax1 = fig.add_subplot(211)\n", "ax1.set_title(u'Две области слиплись')\n", "ax2 = fig.add_subplot(212)\n", "\n", "# Чтобы подписи осей координатных сеток не сливались разнесём их\n", "# в разные стороны - одну оставим слева, а другую вынесем направо\n", "ax1.tick_params(axis='x', labelbottom='off', labeltop='off') \n", "ax2.tick_params(axis='y', labelleft='off', labelright='on', left=False, right=True)\n", "# Узнаём координаты областей, которые занимают subplots\n", "print u'Область 1', ax1\n", "print type(ax1)\n", "print u'Область 2',ax2\n", "\n", "# Нарисуем в каждом subplot линию сетки\n", "\n", "for ax in fig.axes:\n", " ax.grid(True)\n", "\n", "# Параметр подобран эмпирически, на глаз. Это скверно\n", "\n", "plt.tight_layout(h_pad = -0.88)\n", "\n", "save('pic_7_2_1', fmt='png')\n", "save('pic_7_2_1', fmt='pdf')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "В примере ниже область ax2 создана позже, чем ax1. Значит именно ax2 будет перекрывать область ax1. Если поменять местами ax1 и ax2 (строчки кода, где они создаются, а не где на этих областях рисуются линии), то область с голубой линией будет перекрыта и мы её вообще не увидим." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Область 1 Axes(0,0;1x1)\n", "\n", "Область 2 Axes(0.5,0.5;0.5x0.5)\n" ] }, { "data": { "image/png": "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\nyrOxatWqzpRpxWIRAByXueZq3Z5NZ3HgVwdQLBZx3urzkE/ntc/Hl2efncWGkQ1Y/YerAQA7Nu/A\n6CMJagwAACAASURBVDGjwAXo2p9PmM6Xd061Epp0r8dDw49veNyVfaploMV6Dj19CMVma+L0fCaP\nHY/uQHG82LX/05ufxolnn9hZHtw1iP2z+zFbm0V5a7kz8brd9XjY1O77yaQyPdunt0xjI23EZa+6\nTOvzvfzky3hs7DGsPn611v733HUPMi9kMFebQ6VRweQzkz2fZ8cTOzB0ylBn+alHn8KyM5d1f778\nIA7MHsDmJzZj8pnJjpP2+v3Iloezw9h430YUWcu+WrMGep5w7933evr++d9iu0crNpX0okXqM7jf\n999DOKef/f5duVc413ba12pPlGPEbXEan7CurdpXtCfqMWKMrQFQJKKiZfUUgFHLstSxAmi9RTv9\nA7ASwP3tv+8HcEH77w8AuEZxDBERvfE/3ki3PnsrecUl6y6hO7bd0bXu/p3302u+8RoiIjowc4CW\nfnap7/O+66Z30bpH1vXs95v//pt029bbOstH//PRtGdqj/Z1zrnuHNq4e6Nr++zw3h+/l6596NrO\n8o2/upHe9r239ez3kds/Qp+5+zOd5d+94Xfppidvou88+h364///j7Wu9bl7P0cfvvXDyu3nf/18\n2rBrQ8/6d3z/HfSDJ36gdQ0iojO/diY9tu8x7f2JWt/Fvul9tO6RdfSum97Vs/3LD3yZ/uaWv+ks\nX3XnVbRm/Zqufa596Fp674/fS0RESz67hF6cfdGVDTr46oav0l/99K86y4dLh2nRZxb5OufVV19t\nu71ar1J6bVq6befkTlrxhRWervuBn32AvnT/l1zbs7a4lv7hzn9wPP+Hbv0QfeG+LyjvKyd86f4v\n0f/82f/ssef+nffThd+4UHncxM0TdP3D12td47uPfZf+8MY/lG479vPH0s7JnT3rr776avq72/6O\n/vmef9a6BhHR95/4Pv3eD36vZ/3F376Y1j+3XnncFTdcQTc9eZPtuTOXZGi2OktERN9+5Nv07h++\nu2v73S/cTRd986LO8v+4+X9oj49bLPrMIvroxz+q3P7NTd+kiZsniMj53q3Wq5T5ZEa5/esbv07v\n+dF7HG1q+y+ZX3s7gG+3/34tgFtk+xGRq1Ic3gPwLwH8Szt7eDWAT9kdFIbmai3F8VqbKNbK2mqH\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Пример 7.2.2\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "fig = plt.figure()\n", "\n", "N = 100\n", "x = np.arange(N)\n", "y = np.random.random(N)*30.\n", "\n", "# Область ax1 нарисуется первой\n", "ax1 = fig.add_axes([0.,0.,1.0,1.0]) \n", "# Область ax2 перекроет область ax1 и закроет её часть\n", "ax2 = fig.add_axes([0.5,0.5,0.5,0.5])\n", "\n", "rect0 = [0.0, 0.0]\n", "\n", "ax1.plot(rect0, 'r')\n", "ax1.plot(x, y, 'green')\n", "\n", "ax2.plot(rect0, 'c')\n", "ax2.hist(y, 20, edgecolor='k', facecolor='r')\n", "ax2.tick_params(axis='y', which='major', direction='inout',\n", " left=True, right=True, labelleft=False, labelright=True)\n", "ax2.tick_params(axis='x', which='major', direction='inout',\n", " bottom=True, top=True, labelbottom=False, labeltop=True)\n", "\n", "print u'Область 1', ax1\n", "print type(ax1)\n", "print u'Область 2',ax2\n", "\n", "for ax in fig.axes:\n", " ax.grid(True)\n", " \n", "save('pic_7_2_2', fmt='png')\n", "save('pic_7_2_2', fmt='pdf')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7.3 Автоматизированное создание мультиокон\n", "\n", "Для создания множества областей удобно не просто добавлять их на рисунок последовательно, по одному, а всего одной строчкой разбить рисунок на несколько областей рисования. Это позволяет сделать, например, метод `plt.subplots()`, который требует указать число строк и столбцов создаваемой таблицы каждая из ячеек которой и есть объект-экземпляр subplots. Метод возвращает объект типа figure и массив из созданных subplots. Их можно перебрать в цикле \"в лоб\", но лучше пользоваться перебором из списка fig.axes, куда автоматически добавляются все области рисования текущего рисунка fig. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nFadVj3S5BgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Пример 7.3\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "fig, subplots = plt.subplots(nrows=2, ncols=2, sharex=True, sharey=True)\n", "\n", "x = np.arange(20)\n", "\n", "i = -1\n", "for ax in fig.axes:\n", " i += 1\n", " y = np.random.rand(np.size(x))\n", " ax.grid(True)\n", " ax.text(0.5, 0.9, str(i+1), color='red')\n", " ax.plot(x, y)\n", " if((i+1)%2 == 0):\n", " ax.tick_params(axis='y', labelleft='off', labelright='on', left=False, right=True)\n", " if((i==0) or (i==1)):\n", " ax.tick_params(axis='x', labelbottom='off', labeltop='off', left=False, right=True) \n", " if((i==1) or (i==2)):\n", " ax.tick_params(axis='y', labelleft='off', labelright='off', left=False, right=False)\n", " if(i==3):\n", " ax.tick_params(axis='x', labelbottom='off', labeltop='off') \n", " if(i==1):\n", " ax.tick_params(axis='x', labelbottom='off', labeltop='on')\n", " if(i==0):\n", " ax.tick_params(axis='y', left=True, right=False)\n", "\n", "# Параметры подобраны эмпирически, на глаз\n", "plt.tight_layout(h_pad = -0.15, w_pad = -0.2)\n", "\n", "save('pic_7_3', fmt='png')\n", "save('pic_7_3', fmt='pdf')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7.4 Мультиокна разных размеров. Gridspec\n", "\n", "Методы `fig.add_subplot()` и `plt.subplots()` позволяют разбить рисунок на равные по размерам области и в этом состоит одно из их основных преимуществ. Оъединить ячейки subplots в более сложные конструкции позволяет метод `plt.subplot2grid()`, который также именуется как метод Gridspec.\n", "\n", "Этот метод позволяет настроить индивидуальные размеры создаваемых subplots. Основной принцип метода - объединения ячеек в более длинные или высокие плитки-области. Таким образом, экземпляры subplots могут быть разных форм и размеров.\n", "\n", "Создание ячеек осуществляется при помощи метода `subplot2grid()`, которому необходимо задать число строк и столбцов в виде кортежа, а также расположение ячеек в виде кортежа номеров от 0 до максимального числа ячеек N-1. То есть для создания таблицы 2x2 нужно задать размер (2,2) и расположение в пределах от (0,0) до (1,1)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Пример 7.4.1\n", "\n", "import matplotlib.pyplot as plt\n", "import matplotlib.gridspec as gridspec\n", "\n", "# 3,3 - три столбца и три ячейки\n", "\n", "ax = plt.subplot2grid((3, 1), (0, 0))\n", "\n", "print type(ax)\n", "\n", "# это запись эквивалентна более детальной записи\n", "\n", "gs = gridspec.GridSpec(3, 1)\n", "\n", "ax = plt.subplot(gs[0, 0])\n", "ax.grid(True)\n", "# Положение текста задано в относительных координатах\n", "ax.text(0.3, 0.5, u'Метод Gridspec', fontsize=14, transform=ax.transAxes)\n", "\n", "save('pic_7_4_1', fmt='png')\n", "save('pic_7_4_1', fmt='pdf')\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Пример 7.4.2 Создание нескольких областей. Пример задания сетки-таблицы (grid) и расположения (loc)\n", "\n", "import matplotlib.pyplot as plt\n", "import matplotlib.gridspec as gridspec\n", "\n", "fig = plt.figure()\n", "\n", "ax1 = plt.subplot2grid((2,2), (0, 0))\n", "ax2 = plt.subplot2grid((2,2), (0, 1))\n", "ax3 = plt.subplot2grid((2,2), (1, 0))\n", "ax4 = plt.subplot2grid((2,2), (1, 1))\n", "\n", "i = -1\n", "jj = [0, 0, 1, 1]\n", "kk = [0, 1, 0, 1]\n", "for ax in fig.axes:\n", " i += 1\n", " stext = 'ax%d - %d, %d' % (i+1, jj[i], kk[i])\n", " ax.text(0.4, 0.5, stext, color='b')\n", " ax.grid(True)\n", " \n", "save('pic_7_4_1', fmt='png')\n", "save('pic_7_4_1', fmt='pdf')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Главным преимуществом данного метода является то, что получаемые subplots могут быть разных форм и размеров. При этом конфигурация задаётся в виде объединения ячеек, а не через указание явных границ, как это можно было бы сделать с помощью метода `ax.add_axes()`.\n", "\n", "Для объединения ячеек при создании таблицы-сетки нужно добавить следующие параметры в метод subplot2grid:\n", "\n", "* **colspan** - объединить столбы;\n", "\n", "* **rowspan** - объединить строки.\n", "\n", "Значение соответствующих параметров показывает сколько ячеек сетки объединить. Причём отсчёт ведётся от точки локализации ячейки включая её. Если нужно объединить и столбцы и строки, то указываются оба параметра одновременно." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Пример 7.4.3\n", "\n", "import matplotlib.pyplot as plt\n", "import matplotlib.gridspec as gridspec\n", "\n", "fig = plt.figure()\n", "\n", "# Сетка состоит из 4 строк и 3 столбцов. Первая ячейка имеет номер (0,0),\n", "# а последняя - (3,2)\n", "egrid = (4,3)\n", "ax1 = plt.subplot2grid(egrid, (0, 0), colspan=3)\n", "ax2 = plt.subplot2grid(egrid, (1, 0), rowspan=2)\n", "ax3 = plt.subplot2grid(egrid, (1, 1), rowspan=2, colspan=2)\n", "ax4 = plt.subplot2grid(egrid, (3, 0), colspan=2)\n", "ax5 = plt.subplot2grid(egrid, (3, 2))\n", "\n", "for i, ax in enumerate(fig.axes):\n", " ax.text(0.5, 0.5, \"ax%d\" % (i+1), va=\"center\", ha=\"center\", \n", " color='red', transform=ax.transAxes)\n", " ax.grid(True)\n", "\n", "# Настройка расстояний между границами созданных subplots\n", "plt.tight_layout()\n", "\n", "save('pic_7_4_3', fmt='png')\n", "save('pic_7_4_3', fmt='pdf')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7.5 \"Главное - чтобы костюмчик сидел!\"\n", "\n", "Создание мультиоконных рисунков - это всегда компромис между удобством представления информации (всё в одном месте) и читаемостью самого рисунка. Перегрузить рисунок используя вышеперечисленные методы проще простого, если общее число ячеек превысило число 4. Поэтому злоупотреблять мультиокнами не нужно. Разместить несколько графиков на рисунке - пожалуйста! Но если на каждой из 4 областей будет по 3-4 графика, то это уже перебор. Учитесь выделять главное, то, что вы точно хотите показать, что выгодно и беспроигрышно подтверждает ваши тезисы.\n", "\n", "Немаловажным является также ясность подписей. При создании рисунка со множеством диаграмм подписи к осям становятся либо нечитаемыми, либо выглядят неопрятно. На слайде или лекции это куда ни шло, но в научный журнал такое не пошлёшь! Нужно следить за читаемостью легенд и размещать их так, чтобы они не мешали чтение рисунка. При этом не нужно дублировать информацию. Если графики расположены один под одним и у них единая шкала по оси абсцисс, то на некоторых областях можно убрать подписи оставив вспомогательную сетку.\n", "\n", "Одним словом нужно уметь двигать созданные тем или иным способом области, если подписи к ним или к осям вылазят или перекрываются. Самым простым является метод **`plt.tight_layout()`**. Он самостоятельно подбирает параметры рисунка так, чтобы все объекты на нём выглядели хорошо. К сожалению, он плохо ладит одновременно с методом `fig.add_axes()`.\n", "\n", "Метод **`fig.subplots_adjust()`** позволяет обновить SubplotParams (по умолчанию определяет их из rcParams, если ни один аргумент метода не был определён) и переопределить параметры местоположения subplots. Также можно напрямую определять параметры расположения subplots через **`matplotlib.rcParams`**." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Пример 7.5\n", "\n", "import matplotlib.pyplot as plt\n", "import matplotlib.gridspec as gridspec\n", "from matplotlib import rcParams\n", "\n", "# Левая граница subplots на рисунке\n", "rcParams['figure.subplot.left'] = 0.1\n", "# Правая граница subplots на рисунке\n", "rcParams['figure.subplot.right'] = 0.95\n", "# Нижняя граница subplots на рисунке\n", "rcParams['figure.subplot.bottom'] = 0.05\n", "# Верхняя граница subplots на рисунке\n", "rcParams['figure.subplot.top'] = 0.95\n", "\n", "# Изменение параметров wspace и hspace методом rcParams\n", "\n", "# Общая высота (вертикаль), выделенная для свободного пространства между subplots\n", "rcParams['figure.subplot.hspace'] = 0.2\n", "# Общая ширина (горизонталь), выделенная для свободного пространства между subplots\n", "rcParams['figure.subplot.wspace'] = 0.2\n", "\n", "N = 50\n", "x = np.arange(N)\n", "y = np.random.rand(np.size(x))\n", "\n", "fig = plt.figure()\n", "\n", "# Сетка состоит из 4 строк и 3 столбцов. Первая ячейка имеет номер (0,0),\n", "# а последняя - (3,2)\n", "egrid = (4,3)\n", "ax1 = plt.subplot2grid(egrid, (0, 0), colspan=3)\n", "ax2 = plt.subplot2grid(egrid, (1, 0), rowspan=2)\n", "ax3 = plt.subplot2grid(egrid, (1, 1), rowspan=2, colspan=2)\n", "ax4 = plt.subplot2grid(egrid, (3, 0), colspan=2)\n", "ax5 = plt.subplot2grid(egrid, (3, 2))\n", "\n", "for i, ax in enumerate(fig.axes):\n", " ax.plot(x, y, 'k')\n", " ax.text(0.2, 0.75, \"ax%d\" % (i+1), va=\"center\", ha=\"center\", \n", " color='blue', transform=ax.transAxes, fontsize='large')\n", " ax.grid(True)\n", "\n", "# Изменение параметров wspace и hspace методом fig.subplots_adjust()\n", "fig.subplots_adjust(wspace=0.4, hspace=0.4)\n", "\n", "save('pic_7_5', fmt='png')\n", "save('pic_7_5', fmt='pdf')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Автор: Шабанов Павел Александрович\n", "\n", "E-mail: pa.shabanov@gmail.com\n", "\n", "## Научная графика в Python\n", "\n", "### Оглавление\n", "\n", "+ [Глава 1 Библиотека matplotlib. Pyplot](http://nbviewer.ipython.org/github/whitehorn/Scientific_graphics_in_python/blob/master/P1 Chapter 1 Pyplot.ipynb)\n", "\n", "+ [Глава 2 Основные графические команды](http://nbviewer.ipython.org/github/whitehorn/Scientific_graphics_in_python/blob/master/P1 Chapter 2 Main graphical commands.ipynb)\n", "\n", "+ [Глава 3 Работа с текстом и шрифтами](http://nbviewer.ipython.org/github/whitehorn/Scientific_graphics_in_python/blob/master/P1 Chapter 3 Text and Fonts.ipynb)\n", "\n", "+ [Глава 4 Цвет и цветовая палитра](http://nbviewer.ipython.org/github/whitehorn/Scientific_graphics_in_python/blob/master/P1 Chapter 4 Color.ipynb)\n", "\n", "**Часть II Структура рисунка в matplotlib**\n", "\n", "+ [Глава 5 Рисунок](http://nbviewer.ipython.org/github/whitehorn/Scientific_graphics_in_python/blob/master/P2 Chapter 5 Figure container.ipynb)\n", "\n", "+ [Глава 6 Область рисования](http://nbviewer.ipython.org/github/whitehorn/Scientific_graphics_in_python/blob/master/P2 Chapter 6 Axes container.ipynb)\n", "\n", "> + [Глава 7 Мультиоконные рисунки](http://nbviewer.ipython.org/github/whitehorn/Scientific_graphics_in_python/blob/master/P2 Chapter 7 Subplots.ipynb)\n", "\n", "+ [Глава 8 Координатные оси](http://nbviewer.ipython.org/github/whitehorn/Scientific_graphics_in_python/blob/master/P2 Chapter 8 Axis container.ipynb)\n", "\n", "+ [Глава 9 Деления координатных осей](http://nbviewer.ipython.org/github/whitehorn/Scientific_graphics_in_python/blob/master/P2 Chapter 9 Ticks container.ipynb)\n", "\n", "**Часть III Специальные элементы рисунка в matplotlib**\n", "\n", "+ [Глава 10 Особенности координатных осей](http://nbviewer.ipython.org/github/whitehorn/Scientific_graphics_in_python/blob/master/P3 Chapter 10 Twinx and log scale.ipynb)\n", "\n", "+ [Глава 11 Графики в полярной системе координат](http://nbviewer.ipython.org/github/whitehorn/Scientific_graphics_in_python/blob/master/P3 Chapter 11 Polar plots.ipynb) \n", "\n", "+ [Глава 12 Легенда](http://nbviewer.ipython.org/github/whitehorn/Scientific_graphics_in_python/blob/master/P3 Chapter 12 Legends.ipynb)\n", "\n", "+ [Глава 13 Цветовая шкала](http://nbviewer.ipython.org/github/whitehorn/Scientific_graphics_in_python/blob/master/P3 Chapter 13 Colorbar.ipynb)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python [default]", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 0 }