Skip to content

Instantly share code, notes, and snippets.

@bschwb
Created December 25, 2016 23:30
Show Gist options
  • Save bschwb/e223d3582c183e0d170e0431f4c1d685 to your computer and use it in GitHub Desktop.
Save bschwb/e223d3582c183e0d170e0431f4c1d685 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAgcAAAFkCAYAAAC0KZhSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3XmYXHWd7/H3l0UQkGYUXEEREr3oddBuVARZ7kUEEgJx\nAWlhgFEQEJLYMoQlOCqOEgQSEjCgCBLNUBIHWa8kYVgTEHnslkVZBERAiOy2TiIK6d/943SZriZL\nL3Xq1PJ+PU89pE9Xn983h07Vp875fc8vUkpIkiSVrVN0AZIkqb4YDiRJUgXDgSRJqmA4kCRJFQwH\nkiSpguFAkiRVMBxIkqQKhgNJklTBcCBJkioYDiRJUoVcw0FEPBoRfat4nJvnuJIkaeTWy3n/OwDr\nDvj6fcAiYH7O40qSpBHKNRyklJ4f+HVETAAeSSktznNcSZI0cjWbcxAR6wMHAxfVakxJkjR8eV9W\nGOgTQBswd3VPiIg3AHsBvwdeqk1ZkiQ1hQ2BrYGFg8/cD1eklKpS0VoHilgA/C2ltP8anvNZ4D9r\nUpAkSc3p4JTSpaPZQU3OHETE24GPARPX8tTfA8ybN4/tttsu77LqWldXFzNnziy6jLrgsci06nFY\nvhz+8Ad4/PHs8cQTsHhxF295y0z+9Cf405+y5wy27rrw2tfChhtm/y0/Bn/9mtfAeuvB+utnj/Kf\nB29bZ51snwP/O3hbRPbniJWPwV+XH7DqrwduLxv8/bLp07s4+eTK34nBz1ndtlUZ6vPq0Te/2cW0\naa3372OgRx65n+OPPwT630tHo1aXFT4HPA38bC3Pewlgu+22o729Pfei6llbW1vLH4Myj0Wm2Y/D\nH/4Ad94JDz1U+Vi6dOVzNtsMxo6FDTZoY6ed2tl8c9hiC9h885WP8tebbNLYb3ZDMXduG5/8ZPP+\nTgzHRRe1sf/+rX0senr+8cdRX5bPPRxERACHA5eklPryHk9SY3jiCbj55uxxyy3wyCPZ9k03zQLA\n2LGw224r/zxmDLzhDdkb/n77wYUXFlm91NxqcebgY8BWwA9qMJakOvXYY1kIKAeCRx/Ntr/vfTBu\nXBYEdt4Z3vSm5v/EL9W73MNBSul6Km+EJKlFPPMMzJ0LF10EDz6Ybfvnf4YJE2D33WGXXbJLAJLq\nSy1bGTUMnZ2dRZdQNzwWmUY5Dn19cNNN8L3vwRVXZBPyDjgATj8ddt01uzQwWo1yLPLmcVjJY1Fd\nNWtlHIqIaAe6u7u7m3rildSMnnkGLrkkmwvw8MOw3XbwhS/AoYfC619fdHVS8+vp6aGjowOgI6XU\ns7bnr4lnDiSNWEpw443w3e/ClVeuPEtw8cXw0Y86d0BqVIYDSSPS3Q2TJ8Ptt2dnCb79bc8SSM3C\ncCBpWJ55BqZNyyYZvve9sHAh7LmnZwmkZmI4kDQkL78M550HX/96dvlg9mw4+ujs7oGSmov/rCWt\n1aJFMGUK/Pa3cNRRcNpptiBKzaxmSzZLajyPPAL77w977QVvfGN2e9Y5cwwGUrMzHEh6lVdega9+\nFd7zHvjVr+Cyy7K7Gm6/fdGVSaoFLytIqrB0KRx0ENx2G5xyCpx0Emy0UdFVSaolw4Gkf7j55iwY\nrLNO9uePfrToiiQVwcsKkujrg+nTYY89svbEX/3KYCC1MsOB1OJefBEmToSTT84eixZlKyNKal1e\nVpBaWHc3fPrT0NsL114L48cXXZGkeuCZA6kFpZStmrjTTllbYk+PwUDSSoYDqcUsXw6HHZbdzOjz\nn4clS2DrrYuuSlI98bKC1EJeeAEmTIC77oJ58+Dgg4uuSFI9MhxILeLJJ2HvvbP7GNx0E3zoQ0VX\nJKleGQ6kFvDQQ9nKiStWwOLF2RLLkrQ6zjmQmlxPD+y8M7z2tXD77QYDSWtnOJCa2E03we67wzvf\nmZ0x2GqroiuS1AgMB1KTuuKKbI7BjjvCDTe4kqKkoTMcSE3o+9/Pbm40cSJccw1ssknRFUlqJIYD\nqYmklK2RcOSR8IUvwKWXwgYbFF2VpEZjOJCaREowdWq2PsK//zvMmQPrrlt0VZIaka2MUhMoB4Oz\nzoJzzoEpU4quSFIjMxxIDS4lmDYtCwazZsHkyUVXJKnReVlBanCnnQann56FA4OBpGrIPRxExFsj\n4kcR8VxELI+IuyOiPe9xpVbwrW/B176W/ff444uuRlKzyPWyQkRsBtwG3ADsBTwHjAVezHNcqRWc\neWZ2OeHrX88mIUpSteQ95+Ak4PGU0hEDtj2W85hS05s1K5uAOG0afOUrRVcjqdnkfVlhAvDLiJgf\nEU9HRE9EHLHWn5K0WnPmwJe+BCecAN/4BkQUXZGkZpN3ONgGOAZ4EPg4cAEwOyIOyXlcqSldeCEc\ne2wWDs44w2AgKR95X1ZYB7gzpVQ+8Xl3RLyXLDDMW90PdXV10dbWVrGts7OTzs7O3AqV6t0ll8BR\nR2XhYMYMg4HUykqlEqVSqWJbb29v1fYfKaWq7exVO4/4PbAopfSFAduOBqallF61Plx/F0N3d3c3\n7e02NEhll10GnZ3ZbZHPPx/WsQlZ0iA9PT10dHQAdKSUekazr7xfYm4D3j1o27txUqI0ZAsXwiGH\nwMEHGwwk1UbeLzMzgR0j4uSI2DYiPgscAZyX87hSU7jjDvjkJ2GvveDiiw0Gkmoj15ealNIvgU8A\nncC9wDRgSkrpx3mOKzWD3/wGxo+H9naYPx/WX7/oiiS1itzXVkgp/Qz4Wd7jSM3ksceyswVbbgnX\nXAMbbVR0RZJaiScppTrzzDPw8Y/DBhvAggWw2WZFVySp1bgqo1RH/vxn2Gcf6O2F226Dt7yl6Iok\ntSLDgVQnXnoJJk6ERx6BW26BbbctuiJJrcpwINWBV16Bz34Wfv5zWLQItt++6IoktTLDgVSwlODo\no+Hqq+HKK2GXXYquSFKrMxxIBTvlFLjoIpg7F/bdt+hqJMluBalQ554L06fD2WfDoYcWXY0kZQwH\nUkEuvxymTIEvfzl7SFK9MBxIBVi8OFsr4cAD4cwzi65GkioZDqQau+8+2G8/+MhHsnkGrpcgqd74\nsiTV0JNPwt57w1ZbwRVXZHdBlKR6YziQaqS3F8aNy/583XXeFllS/bKVUaqBv/0NPvEJePxxWLIE\n3va2oiuSpNUzHEg56+uDf/3XbK2E66+H97636Iokac0MB1LOTjoJfvxjuOwy2HXXoquRpLUzHEg5\nmjUra1WcNQsOOKDoaiRpaJyQKOXk8suhqwv+7d9g8uSiq5GkoTMcSDm4/fbsJkef+QyccUbR1UjS\n8BgOpCp76KHsJkcf/jBccok3OZLUeHzZkqro2Wdhn31giy28yZGkxuWERKlKli+HCRPgL3+BO+6A\n17++6IokaWQMB1IVrFgBhxwC994Lt9wC73xn0RVJ0sgZDqQqOP54uOoquPJK2GGHoquRpNExHEij\ndM452X0MvvOd7LKCJDU6JyRKo/DTn8KXvwwnnABf/GLR1UhSdRgOpBH6+c+zexkccABMn150NZJU\nPYYDaQQefji7l8EOO8Dcud7LQFJzyfUlLSK+GhF9gx735TmmlLfnnsvuZfCGN2STEDfcsOiKJKm6\najEh8dfAHkD0f/1KDcaUcvHSSzBxIvT2ei8DSc2rFuHglZTSszUYR8pVXx8cfjh0d8PNN8M22xRd\nkSTloxZXSsdGxJMR8UhEzIuIrWowplR106bB/Pkwb162boIkNau8w8EdwOHAXsDRwDuBWyNi45zH\nlarqwguzjoSzzoJPfaroaiQpX7leVkgpLRzw5a8j4k7gMeBA4Ad5ji1Vy8KFcMwx2X0MurqKrkaS\n8lfTOySmlHoj4rfAmDU9r6uri7a2toptnZ2ddHZ25lme9Cr33JPdx2DvvbO7IEas/WckKW+lUolS\nqVSxrbe3t2r7j5RS1Xa21sEiNiE7c/DVlNJ5q/h+O9Dd3d1Ne3t7zeqSVuXJJ2HHHbPll2+9FTbZ\npOiKJGn1enp66OjoAOhIKfWMZl953+fgzIjYNSLeERE7AVeQtTKW1vKjUqH+8hfYd9/sTMG11xoM\nJLWWvC8rbAlcCrwBeBZYAuyYUno+53GlEXvlFTjoIHjkEbjtNnjrW4uuSJJqK+8JiU4SUENJCSZN\ngkWL4Gc/g/e9r+iKJKn2XLJZGmDGDLjgAvj+92HPPYuuRpKK4XIxUr/LL8+WXj75ZPj854uuRpKK\nYziQgF/8Ag45BA48EP7jP4quRpKKZThQy3v00Wz55fZ2uOQSl1+WJF8G1dJefBHGj4fXvc7llyWp\nzAmJall//zt8+tPwxz9myy9vvnnRFUlSfTAcqCWlBEcdBUuWwPXXw7veVXRFklQ/DAdqSd/6Vja/\nYN482HXXoquRpPrinAO1nFIJTj0VTjsNDj646Gokqf4YDtRSFi+Gww+Hww7LAoIk6dUMB2oZDz0E\nEyfCTjvB977n8suStDqGA7WE55+HcePgjW+En/4UXvOaoiuSpPrlhEQ1vb/9LTtj0NubtSz+0z8V\nXZEk1TfDgZpaSvC5z8Evfwk33QTbbFN0RZJU/wwHampf+xpceinMnw877lh0NZLUGJxzoKY1d27W\nrjh9OhxwQNHVSFLjMByoKd10Exx5JBxxBEydWnQ1ktRYDAdqOg88AJ/8JOy2G8yZY8uiJA2X4UBN\n5dlns5bFt74V/uu/YP31i65IkhqPExLVNP76V9h/f1i+HG68Edraiq5IkhqT4UBNoa8vuy3yXXfB\nzTfD1lsXXJAkNTDDgZrCqafCT36SXUr40IeKrkaSGpvhQA3v4ovh9NPhzDOziYiSpNFxQqIa2g03\nwFFHZY/jjy+6GklqDoYDNaz77oNPfQr22APOO8+WRUmqFsOBGtLTT8P48fD2t2e3Rl7PC2SSVDW+\npKrhlFsWX3oJbrkFNt206IokqbkYDtRQ+vrg0EPhnnvg1luzMweSpOqq2WWFiDg5IvoiYkatxlTz\nOeUUuPzybKXFHXYouhpJak41OXMQER8EjgTursV4ak4XXghnnAEzZsDEiUVXI0nNK/czBxGxCTAP\nOAL4U97jqTldfz0cc0z2+NKXiq5GkppbLS4rfAe4JqV0Yw3GUhP6zW/g05+GPfeE2bNtWZSkvOV6\nWSEiDgLeD3h1WCPyxz9mLYtbbw2XXWbLoiTVQm4vtRGxJXAOsGdK6eW8xlHzWr4c9tsP/v53uPZa\nWxYlqVby/BzWAWwBdEf840TwusCuEXEcsEFKKa3qB7u6umgbtN5uZ2cnnZ2dOZaretLXB//yL9kl\nhVtvha22KroiSaofpVKJUqlUsa23t7dq+4/VvD+PfscRGwPvGLT5EuB+YHpK6f5V/Ew70N3d3U17\ne3sudakxTJ0KZ50FV16ZnT2QJK1ZT08PHR0dAB0ppZ7R7Cu3MwcppWXAfQO3RcQy4PlVBQOp7Hvf\ny1ZYnDnTYCBJRaj12gr5nKZQ01i0CL74RTj2WJgypehqJKk11XTud0rp/9ZyPDWWX/86a1ncay84\n5xxbFiWpKK7KqLpQblncZhv48Y9tWZSkIhkOVLjly2HCBHjllaxl8XWvK7oiSWptfj5Tofr64JBD\n4P77s5bFLbcsuiJJkuFAhTrxRLjqqqxl0e5VSaoPhgMV5rvfze5lMGtWdllBklQfnHOgQixcmLUr\nTpoEkycXXY0kaSDDgWru3nvhgANg772zGx1JkuqL4UA1tXQp7LsvbLtt1rK47rpFVyRJGsxwoJpZ\ntiy7HfIrr8A118AmmxRdkSRpVZyQqJpYsSJbZfH++2HxYlsWJameGQ5UE+WWxauugg98oOhqJElr\nYjhQ7i64AM4+G2bPzuYbSJLqm3MOlKuFC+G447KWxUmTiq5GkjQUhgPlptyyuM8+tixKUiMxHCgX\nS5dmqyxuuy2USrYsSlIjMRyo6soti3192SqLtixKUmNxQqKqasWKlassLlkCb3tb0RVJkobLcKCq\nOvFEuPrqrGXx/e8vuhpJ0kgYDlQ1tixKUnNwzoGqotyyOHmyLYuS1OgMBxq1gS2LM2YUXY0kabQM\nBxqVcsvimDG2LEpSszAcaMQGtiy6yqIkNQ8nJGpEbFmUpOZlONCIlFsWr77alkVJajaGAw1buWXx\n3HOz+QaSpObinAMNy8CWxeOOK7oaSVIeDAcasnLL4rhxtixKUjPLNRxExNERcXdE9PY/bo+IvfMc\nU/kYuMripZfasihJzSzvMwdPACcCHf2PG4GrImK7nMdVFbnKoiS1llwnJKaU/t+gTadGxDHAjsD9\neY6t6rBlUZJaT826FSJiHeBAYCPg57UaV6Njy6IktZ7cw0FE/G+yMLAh8BfgEymlB/IeV6Nny6Ik\ntaZanDl4ANge2Az4FPDDiNh1TQGhq6uLtra2im2dnZ10dnbmWqhWWrDAlkVJqlelUolSqVSxrbe3\nt2r7j5RS1XY2pAEjrgceTikds4rvtQPd3d3dtLe317QurXTvvbDzzrD77nDFFXYmSFIj6OnpoaOj\nA6AjpdQzmn0VcZ+DdYANChhXQzBwlUVbFiWpNeV6WSEivglcR9bS+DrgYGA34ON5jquRWbYMJkxw\nlUVJanV5zzl4E/BD4C1AL3AP8PGU0o05j6thWrECDj4YHnjAlkVJanV53+fgiDz3r+qZOjU7W2DL\noiTJVRnF+ednayXMnm3LoiTJhZda3oIFMGlS1rI4aVLR1UiS6oHhoIXdcw8ceKCrLEqSKhkOWtTS\npbDvvrYsSpJezXDQgmxZlCStiRMSW4wti5KktTEctBhbFiVJa2M4aCHllkVXWZQkrYlzDlrEwJZF\nV1mUJK2J4aAF2LIoSRoOw0GTs2VRkjRchoMmZsuiJGkknJDYpGxZlCSNlOGgSdmyKEkaKcNBE7Jl\nUZI0Gs45aDK2LEqSRstw0ERsWZQkVYPhoEk89VR2CcGWRUnSaBkOmkC5ZTElWxYlSaPnhMQGV25Z\nfPBBWxYlSdVhOGhwJ5xgy6IkqboMBw3s/PNh5kxbFiVJ1eWcgwZ13XVZq6Iti5KkajMcNKByy+L4\n8bYsSpKqz3DQYMoti2PH2rIoScqH4aCB2LIoSaoFJyQ2CFsWJUm1YjhoELYsSpJqJdfLChFxckTc\nGRF/joinI+KKiHhXnmM2o3LL4qxZtixKkvKX95yDXYBzgQ8DHwPWBxZFxGtzHrdp2LIoSaq1XC8r\npJTGDfw6Ig4HngE6gCV5jt0MbFmUJBWh1t0KmwEJeKHG4zYcWxYlSUWpWTiIiADOAZaklO6r1biN\naNky2G8/WxYlScWoZbfCHOA9wM5re2JXVxdtbW0V2zo7O+ns7MyptPpRbll84AFYvNiWRUnSq5VK\nJUqlUsW23t7equ0/UkpV29lqB4k4D5gA7JJSenwNz2sHuru7u2lvb8+9rnp0/PFwzjlZy6KdCZKk\noerp6aGjowOgI6XUM5p95X7moD8Y7A/stqZgoKxlccYMmD3bYCBJKk6u4SAi5gCdwH7Asoh4U/+3\nelNKL+U5dqMZ2LI4aVLR1UiSWlneExKPBjYFbgaeGvA4MOdxG0q5ZXHcOFsWJUnFy/s+By7stBYD\nWxZLJVsWJUnF8827QK6yKEmqRy68VBBXWZQk1SvDQUGmTnWVRUlSfTIcFMCWRUlSPXPOQY0tWJC1\nKtqyKEmqV4aDGrrnHjjgANhnH1sWJUn1y3BQI0uXwr772rIoSap/hoMaKLcs9vXZsihJqn9OSMzZ\nwFUWbVmUJDUCw0HObFmUJDUaw0GOyi2L555ry6IkqXE45yAnA1dZPO64oquRJGnoDAc5KK+yOH68\nLYuSpMZjOKiygS2Ll15qy6IkqfEYDqrIlkVJUjNwQmKV2LIoSWoWhoMqsWVRktQsDAdVYMuiJKmZ\nOOdglMoti1Om2LIoSWoOhoNRGNiyePbZRVcjSVJ1GA5GyJZFSVKzMhyMgC2LkqRm5oTEYbJlUZLU\n7AwHw2TLoiSp2RkOhsGWRUlSK3DOwRDZsihJahWGgyGwZVGS1EoMB2tRblkcM8aWRUlSa8g1HETE\nLhFxdUQ8GRF9EbFfnuNV28CWxWuvtWVRktQa8j5zsDFwF3AskHIeq6oGtixee60ti5Kk1pFrt0JK\naQGwACAiIs+xqs2WRUlSq7KVcRVsWZQktTInJA5SblmcPNmWRUlSa6rLMwddXV20tbVVbOvs7KSz\nszPXcQe2LM6YketQkiSNWKlUolQqVWzr7e2t2v4jpdrME4yIPmBiSunqNTynHeju7u6mvb29JnWV\nPfUUfPjDsMUWcOutdiZIkhpLT08PHR0dAB0ppZ7R7MvLCqxsWUzJVRYlScr1skJEbAyMAcqdCttE\nxPbACymlJ/Ice6jKLYsPPugqi5IkQf5zDnYAbiK7x0ECyjcfngt8Luexh+SEE2xZlCRpoLzvc3AL\ndXzpYs4cmDnTlkVJkgaq2zfuvF13HUyaZMuiJEmDtWQ4uPtuWxYlSVqdlgsHTz2VrbI4dqyrLEqS\ntCotFQ5sWZQkae3q8g6JebBlUZKkoWmZcGDLoiRJQ9MS4eD8821ZlCRpqJp+zoGrLEqSNDxNHQ5c\nZVGSpOFr2nCwdKkti5IkjURThoNyy2Jfny2LkiQNV9NNSCy3LD7wgC2LkiSNRNOFg6lTbVmUJGk0\nmiocnH9+NvHQlkVJkkauaeYcLFjgKouSJFVDU4SDcsviuHG2LEqSNFoNHw7KLYtjxtiyKElSNTR0\nOLBlUZKk6mvYCYm2LEqSlI+GDQe2LEqSlI+GDAe2LEqSlJ+Gm3Ngy6IkSflqqHBQblncZx9bFiVJ\nykvDhIOBLYulki2LkiTlpSHCgS2LkiTVTt1PSLRlUZKk2qr7cGDLoiRJtVWTywoRcWxEPBoRf42I\nOyLig0P5uXLL4qxZtixKklQruYeDiPgMcDbwVeADwN3AwojYfE0/d911WauiLYuSJNVWLc4cdAHf\nTSn9MKX0AHA0sBz43Op+4KGHspbF8eNtWZQkqdZyDQcRsT7QAdxQ3pZSSsB/Ax9Z3c9Nngxjx7rK\noiRJRcj7zMHmwLrA04O2Pw28eXU/lJIti5IkFaWo+xwEkFb3zVmzbFmUJKkoebcyPgesAN40aPsb\nefXZhH+44IIuSqW2im2dnZ10dnZWvUBJkhpNqVSiVCpVbOvt7a3a/iObApCfiLgD+EVKaUr/1wE8\nDsxOKZ056LntQHd3dzft7e251iVJUjPp6emho6MDoCOl1DOafdXiJkgzgLkR0Q3cSda9sBFwSQ3G\nliRJw5R7OEgpze+/p8FpZJcX7gL2Sik9m/fYkiRp+Gpy++SU0hxgTi3GkiRJo9MQqzJKkqTaMRxI\nkqQKhgNJklTBcCBJkioYDiRJUgXDgSRJqmA4kCRJFQwHkiSpguFAkiRVMBxIkqQKhgNJklTBcCBJ\nkioYDiRJUgXDgSRJqmA4kCRJFQwHkiSpguFAkiRVMBxIkqQKhgNJklTBcCBJkioYDiRJUgXDgSRJ\nqmA4kCRJFQwHkiSpguFAkiRVMBxIkqQKhgNJklTBcFCnSqVS0SXUDY9FxuOwksci43FYyWNRXbmF\ng4g4JSJui4hlEfFCXuM0K3/RV/JYZDwOK3ksMh6HlTwW1ZXnmYP1gfnA+TmOIUmSqmy9vHacUvo6\nQEQcltcYkiSp+pxzIEmSKuR25mCENgS4//77i66jcL29vfT09BRdRl3wWGQ8Dit5LDIeh5U8FhXv\nnRuOdl+RUhr6kyNOB05cw1MSsF1K6bcDfuYwYGZK6fVD2P9ngf8cckGSJGmwg1NKl45mB8M9c3AW\n8IO1POd3I6wFYCFwMPB74KVR7EeSpFazIbA12XvpqAwrHKSUngeeH+2ga9n/qNKOJEkt7PZq7CS3\nOQcRsRXweuAdwLoRsX3/tx5OKS3La1xJkjQ6w5pzMKwdR/wAOHQV3/o/KaVbcxlUkiSNWm7hQJIk\nNSbvcyBJkioYDiRJUoW6CgcRcWxEPBoRf42IOyLig0XXVEsRcXJE3BkRf46IpyPiioh4V9F1Fa3/\nuPRFxIyiaylCRLw1In4UEc9FxPKIuDsi2ouuq5YiYp2I+EZE/K7/GDwcEacWXVctRMQuEXF1RDzZ\n/+9gv1U857SIeKr/2FwfEWOKqDVPazoOEbFeRJwREfdExP/0P2duRLylyJrzMpTfiQHP/W7/cyYP\nZ4y6CQcR8RngbOCrwAeAu4GFEbF5oYXV1i7AucCHgY+RLV61KCJeW2hVBeoPiEeS/T60nIjYDLgN\n+BuwF7AdcDzwYpF1FeAk4Cjgi8D/AqYCUyPiuEKrqo2NgbuAY8luNFchIk4EjiM7Ph8ClpG9dr6m\nlkXWwJqOw0bA+4Gvk71/fAJ4N3BVLQusoTX+TpRFxESy34knhztA3UxIjIg7gF+klKb0fx3AE8Ds\nlNK3Cy2uIP3B6Blg15TSkqLrqbWI2AToBo4BvgL8KqX05WKrqq2ImA58JKW0W9G1FCkirgH+mFI6\ncsC2/wKWp5RW1RXVlCKiD5iYUrp6wLangDNTSjP7v94UeBo4LKU0v5hK87Wq47CK5+wA/AJ4R0rp\nDzUrrsZWdywi4m3Az8k+VPyM7E7Fs4e637o4cxAR6wMdwA3lbSlLLf8NfKSouurAZmSp8IWiCynI\nd4BrUko3Fl1IgSYAv4yI+f2Xmnoi4oiiiyrA7cAeETEWoP++KTuTvei1rIh4J/BmKl87/0z2ptjK\nr52w8vXzT0UXUmv9H65/CHw7pTSixYrqZeGlzYF1ydLuQE+TnRpqOf3/c88BlqSU7iu6nlqLiIPI\nThPuUHQtBduG7MzJ2cA3yS45zY6Il1JK8wqtrLamA5sCD0TECrIPNtNSSj8utqzCvZnsDXBVr51v\nrn059SEiNiD7nbk0pfQ/RddTgJOAv6eUzhvpDuolHKxOsIbrKU1uDvAesk9HLSUitiQLRnumlF4u\nup6CrQPcmVL6Sv/Xd0fEe8kCQyuFg88AnwUOAu4jC46zIuKplNKPCq2sPrXsa2dErAf8hOzv/8WC\ny6m5iOgAJpPNvRixurisADwHrADeNGj7G3l1Im56EXEeMA7YPaW0tOh6CtABbAF0R8TLEfEysBsw\nJSL+3n+KoUMZAAACL0lEQVRWpVUsBQafFrwfeHsBtRTp28DpKaWfpJR+k1L6T2AmcHLBdRXtj2RB\nwNdOKoLBVsDHW/SswUfJXj+fGPD6+Q5gRkQMeWHEuggH/Z8Ou4E9ytv63wD2oEqLSDSK/mCwP9lt\nph8vup6C/DfwPrJPh9v3P35J9kl5+1Qvs2hr4zZefWnt3cBjBdRSpI149SfhPurkNawoKaVHyQLC\nwNfOTckuP7Xaa2c5GGwD7JFSarWOnrIfAv/MytfO7YGnyAL2XkPdST1dVpgBzI2IbuBOoIvsBeGS\nIouqpYiYA3QC+wHLIqL8aaA3pdQyS1j3L8xVMc8iIpYBz490ck0DmwncFhEnA/PJXvSPIGvvbCXX\nANMi4gngN0A72WvE9wutqgYiYmNgDNkZAoBt+idkvpBSeoLsEtypEfEw2XL33wD+QJO18a3pOJC9\n+V1O9oFiX2D9Aa+fLzTb5ckh/E68OOj5L5N1+zw05EFSSnXzILs+9Hvgr2QtGDsUXVON//59ZJdX\nBj8OLbq2oh/AjcCMouso6O8+DrgHWE72xvi5omsq4BhsTPYB4lGyPv6HyHra1yu6thr83XdbzWvD\nxQOe8zWyN8jlwEJgTNF11/I4kJ02H/y98te7Fl17Eb8Tg57/O2DycMaom/scSJKk+tDS1+skSdKr\nGQ4kSVIFw4EkSapgOJAkSRUMB5IkqYLhQJIkVTAcSJKkCoYDSZJUwXAgSZIqGA4kSVIFw4EkSarw\n/wElSuYZQnAY3AAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f0499fea470>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np \n",
"import matplotlib.pyplot as plt\n",
"\n",
"Kd = 1e-7\n",
"Ka = 1e-7\n",
"\n",
"pH = np.linspace(0, 14)\n",
"plt.plot(pH, -np.log10(Kd * (Ka + 1/(10**pH))/Ka))\n",
"\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment