Rmax_potential_Vesc_Adicora.ipynb 5.42 MB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false,
    "hide_input": false
   },
   "outputs": [],
   "source": [
    "%matplotlib notebook\n",
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "hide_input": false
   },
   "outputs": [],
   "source": [
    "\n",
    "from scipy.stats import rv_continuous\n",
    "from scipy.interpolate import interp1d\n",
    "from matplotlib.patches import Circle\n",
    "from scipy.special import gamma\n",
    "import numpy as np\n",
    "import emcee\n",
    "from mpl_toolkits.axes_grid1 import make_axes_locatable\n",
    "from numpy import exp, sqrt\n",
    "from scipy.integrate import quad, dblquad, nquad\n",
    "import matplotlib.patches as patches\n",
    "from itertools import product\n",
    "from scipy.integrate import quad\n",
    "import scipy.optimize as optimize\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib as mpl\n",
    "from sklearn.neighbors import KDTree\n",
    "import sys\n",
    "import lmfit\n",
    "from py_unsio import *\n",
    "import pymc\n",
    "import os\n",
    "from pymodelfit import FunctionModel1DAuto\n",
    "import wkbl\n",
    "from wkbl.astro.halo_info import *\n",
    "from mpl_toolkits.mplot3d import axes3d\n",
    "from matplotlib import cm\n",
    "import wkbl.astro.nbody_essentials as nbe\n",
    "import cfalcon\n",
    "CF =cfalcon.CFalcon()\n",
    "import iminuit\n",
    "from iminuit import Minuit, describe, Struct\n",
    "import probfit\n",
    "from matplotlib.colors import LogNorm\n",
    "from matplotlib.ticker import FormatStrFormatter\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
67
   "execution_count": 4,
68 69 70 71 72 73 74 75 76 77 78 79
   "metadata": {
    "collapsed": false,
    "hide_input": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loading Dark matter..\n",
      "loading Stars..\n",
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
      "loading Gas..\n"
     ]
    },
    {
     "ename": "LinAlgError",
     "evalue": "Array must not contain infs or NaNs",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mLinAlgError\u001b[0m                               Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-4-f763ddbd9374>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[0mmyhydro\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwkbl\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGalaxy_Hound\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhydro\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0mmyhydro\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcenter_shift\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhydro\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc_dm_com\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mmyhydro\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mr_virial\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m600\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2.5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m/home/arturo/Documents/git/WKBL/wkbl/astro/galaxy_peeker.pyc\u001b[0m in \u001b[0;36mr_virial\u001b[0;34m(self, r_max, r_min, rotate, n, bins, quiet)\u001b[0m\n\u001b[1;32m     82\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     83\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mrotate\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;32mand\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sts\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 84\u001b[0;31m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrotate_galaxy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     85\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mredefine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     86\u001b[0m             \u001b[0mD\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatrix_T\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatrix_P\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtranspose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatrix_T\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/home/arturo/Documents/git/WKBL/wkbl/astro/galaxy_peeker.pyc\u001b[0m in \u001b[0;36mrotate_galaxy\u001b[0;34m(self, rmin, rmax)\u001b[0m\n\u001b[1;32m    120\u001b[0m                 \u001b[0msecond\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maverage\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpos_ring\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maverage\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpos_ring\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    121\u001b[0m                 \u001b[0mP\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfirst\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0msecond\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 122\u001b[0;31m         \u001b[0meigen_values\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mevecs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinalg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0meig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mP\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    123\u001b[0m         \u001b[0morder\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margsort\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mabs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0meigen_values\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    124\u001b[0m         \u001b[0mT\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzeros\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python2.7/dist-packages/numpy/linalg/linalg.pyc\u001b[0m in \u001b[0;36meig\u001b[0;34m(a)\u001b[0m\n\u001b[1;32m   1141\u001b[0m     \u001b[0m_assertRankAtLeast2\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1142\u001b[0m     \u001b[0m_assertNdSquareness\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1143\u001b[0;31m     \u001b[0m_assertFinite\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1144\u001b[0m     \u001b[0mt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresult_t\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_commonType\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1145\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python2.7/dist-packages/numpy/linalg/linalg.pyc\u001b[0m in \u001b[0;36m_assertFinite\u001b[0;34m(*arrays)\u001b[0m\n\u001b[1;32m    214\u001b[0m     \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0marrays\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    215\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0misfinite\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 216\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mLinAlgError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Array must not contain infs or NaNs\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    217\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    218\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_isEmpty2d\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mLinAlgError\u001b[0m: Array must not contain infs or NaNs"
96 97 98 99
     ]
    }
   ],
   "source": [
100 101 102
    "hydro = wkbl.astro.halo_info.AdicoraHydro() \n",
    "myhydro = wkbl.Galaxy_Hound(hydro.path)\n",
    "myhydro.center_shift(hydro.c_dm_com)\n",
103
    "myhydro.r_virial(600,n=2.5)\n"
104 105 106 107
   ]
  },
  {
   "cell_type": "code",
108
   "execution_count": null,
109 110 111
   "metadata": {
    "collapsed": false
   },
112
   "outputs": [],
113 114 115 116 117 118 119
   "source": [
    "print hydro.path\n",
    "print hydro.c_dm_com"
   ]
  },
  {
   "cell_type": "code",
120
   "execution_count": null,
121 122 123 124 125
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
126
    "simname = hydro.name\n",
127 128 129 130 131 132 133 134 135
    "simname_nospace = list(simname)\n",
    "for i in range(len(simname)):\n",
    "    if simname[i]==\" \":\n",
    "        simname_nospace[i]=\"_\"\n",
    "simname_nospace = \"\".join(simname_nospace)\n"
   ]
  },
  {
   "cell_type": "code",
136
   "execution_count": null,
137 138 139 140
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
141
   "outputs": [],
142 143 144 145 146 147 148 149
   "source": [
    "print \"{0:.3e}\".format(np.sum(myhydro.dm.mass[myhydro.dm.r<myhydro.r200]))\n",
    "print \"{0:.3e}\".format(np.sum(myhydro.st.mass[myhydro.st.r<myhydro.r200]))\n",
    "myhydro.gs.hsml.min()"
   ]
  },
  {
   "cell_type": "code",
150
   "execution_count": 7,
151 152 153 154 155 156 157 158 159 160 161
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "##############################################################################################33\n",
    "#########################################################################################3######"
   ]
  },
  {
   "cell_type": "code",
162
   "execution_count": 8,
163 164 165 166 167 168 169 170 171
   "metadata": {
    "collapsed": false,
    "hide_input": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
172
      "9749007 9749007\n"
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
     ]
    }
   ],
   "source": [
    "pos_dm = np.array(myhydro.dm.pos3d.reshape(len(myhydro.dm.pos3d)*3),dtype=np.float32)\n",
    "pos_gs = np.array(myhydro.gs.pos3d.reshape(len(myhydro.gs.pos3d)*3),dtype=np.float32)\n",
    "pos_st = np.array(myhydro.st.pos3d.reshape(len(myhydro.st.pos3d)*3),dtype=np.float32)\n",
    "pos = np.concatenate((pos_dm, pos_st, pos_gs))\n",
    "phi_cord = np.concatenate((myhydro.dm.phi,myhydro.st.phi, myhydro.gs.phi))\n",
    "\n",
    "mass = np.concatenate((myhydro.dm.mass,myhydro.st.mass,myhydro.gs.mass))\n",
    "v = np.concatenate((myhydro.dm.v,myhydro.st.v,myhydro.gs.v))\n",
    "print len(mass)*3, len(pos)\n",
    "pos3d = pos.reshape(len(pos)/3,3)\n",
    "r2 = pos3d[:,0]**2 + pos3d[:,1]**2 +pos3d[:,2]**2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
201
   "execution_count": 9,
202 203 204 205 206 207 208 209 210 211 212 213
   "metadata": {
    "collapsed": false,
    "hide_input": false
   },
   "outputs": [],
   "source": [
    "ok, acc, Phy = CF.getGravity(pos,mass,0.15,G=myhydro.p.G)\n",
    "Phy = Phy * myhydro.p.kpctokm**2"
   ]
  },
  {
   "cell_type": "code",
214
   "execution_count": 10,
215 216 217 218 219 220
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "##############################################################################################33\n",
221 222
    "##\n",
    "#######################################################################################3######"
223 224 225 226
   ]
  },
  {
   "cell_type": "code",
227
   "execution_count": 11,
228 229 230 231 232 233 234 235 236
   "metadata": {
    "collapsed": false,
    "hide_input": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
237
      "3853.3405417848694\n"
238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270
     ]
    }
   ],
   "source": [
    "# center of big neighbour\n",
    "#neighbourg = myhydro.dm.rho[np.where((myhydro.dm.r<4000)&(myhydro.dm.r>myhydro.r200))].max()\n",
    "#myneighbourg = myhydro.dm.pos3d[np.where(myhydro.dm.rho==neighbourg)][0]\n",
    "supershell = np.where((r2>(3*myhydro.r200)**2))\n",
    "neighbourg = Phy[supershell].min()\n",
    "possupershell = pos3d[supershell]\n",
    "myneighbourg = possupershell[np.where(Phy[supershell]==neighbourg)][0]\n",
    "# its radius squared\n",
    "r_nei2 = myneighbourg[0]**2 + myneighbourg[1]**2 + myneighbourg[2]**2\n",
    "phi_neigh = np.arctan2(myneighbourg[1],myneighbourg[0])\n",
    "print np.sqrt(r_nei2)\n",
    "the_neigh = np.arccos(myneighbourg[0]/np.sqrt(r_nei2))\n",
    "\n",
    "\n",
    "# distance to every point proyected to the line conecting center to neigblourg \n",
    "adyacent = (pos3d[:,0]*myneighbourg[0] + pos3d[:,1]*myneighbourg[1] + pos3d[:,2]*myneighbourg[2]) / np.sqrt(r_nei2)\n",
    "# distance to each point\n",
    "hipoteneuse = np.sqrt(pos3d[:,0]**2 + pos3d[:,1]**2 + pos3d[:,2]**2)\n",
    "# angle of cone\n",
    "alpha = np.radians(3)\n",
    "cos_alpha = np.cos(alpha)\n",
    "# cosine of all particles respective to their angle to the l.o.s\n",
    "cos_all = adyacent / hipoteneuse \n",
    "# final selection of cone\n",
    "my_cone = pos3d[np.where((cos_all)>cos_alpha)]"
   ]
  },
  {
   "cell_type": "code",
271
   "execution_count": 12,
272 273 274 275 276 277 278 279 280
   "metadata": {
    "collapsed": false,
    "hide_input": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
281 282
      "the biggest neighbourg has a mass of 1.0509e+11 Msun and a r200 of 101.6018 kpc\n",
      "and it is located at 3853.3405 kpc from de center of our halo \n"
283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302
     ]
    }
   ],
   "source": [
    "# radii from center of neighbour\n",
    "r_neig = np.sqrt((pos3d[:,0] - myneighbourg[0])**2 +(pos3d[:,1] - myneighbourg[1])**2 +(pos3d[:,2] - myneighbourg[2])**2 )\n",
    "# calculating the R200 of neighbout\n",
    "mhist, rhist = np.histogram(r_neig,range=(0.0,np.sqrt(r_nei2)),bins=512, weights=mass )\n",
    "vol_bin = (4./3.)*np.pi*(rhist[:-1]**3)\n",
    "r_bin = rhist[:-1]+ 0.5*(rhist[2]-rhist[1])\n",
    "rho_s = np.cumsum(mhist) / vol_bin\n",
    "r200_neigh = r_bin[np.argmin(np.abs(rho_s - (200 * myhydro.p.rho_crit)))]\n",
    "# mass of neighbour\n",
    "mass_neigh = np.sum(mass[np.where(r_neig<r200_neigh)])\n",
    "print \"the biggest neighbourg has a mass of {0:.4e} Msun and a r200 of {1:.4f} kpc\".format(mass_neigh,r200_neigh)\n",
    "print \"and it is located at {0:.4f} kpc from de center of our halo \".format(np.sqrt(r_nei2))"
   ]
  },
  {
   "cell_type": "code",
303
   "execution_count": 13,
304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323
   "metadata": {
    "collapsed": false,
    "hide_input": false
   },
   "outputs": [],
   "source": [
    "los_condition = np.where((cos_all)>cos_alpha)\n",
    "cone_pos = my_cone\n",
    "cone_mass = mass[los_condition]\n",
    "cone_Phy = Phy[los_condition]\n",
    "cone_r2 = my_cone[:,0]**2 + my_cone[:,1]**2 + my_cone[:,2]**2\n",
    "# now the histogram\n",
    "bin_num = 1000\n",
    "pot_los, bins_pot_los = np.histogram(cone_r2,bins=bin_num,\n",
    "                                 weights=cone_Phy)\n",
    "n_los, _ = np.histogram(cone_r2,bins=bin_num)\n"
   ]
  },
  {
   "cell_type": "code",
324
   "execution_count": 14,
325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#a proyection Story\n",
    "th,ph,ep = the_neigh, phi_neigh, -3*np.pi/4.\n",
    "Ct, Cp, Ce = np.cos(th),np.cos(ph), np.cos(ep)\n",
    "St, Sp, Se = np.sin(th),np.sin(ph), np.sin(ep)\n",
    "#the rotation matrix\n",
    "rot = np.array([[(Ce*Ct*Cp)+(Se*Sp),(Ce*Ct*Sp)-(Se*Cp),Ce*St],\\\n",
    "                [(Se*Ct*Cp)-(Ce*Sp),(Se*Ct*Sp)+(Ce*Cp),Se*St],\\\n",
    "                [-Cp*St,-St*Sp,Ct]])\n",
    "cone_prox = rot[0,0]*cone_pos[:,0]+rot[0,1]*cone_pos[:,1]+rot[0,2]*cone_pos[:,2]\n",
    "cone_proy = rot[1,0]*cone_pos[:,0]+rot[1,1]*cone_pos[:,1]+rot[1,2]*cone_pos[:,2]\n",
    "neig_prox = rot[0,0]*myneighbourg[0]+rot[0,1]*myneighbourg[1]+rot[0,2]*myneighbourg[2]\n",
    "neig_proy = rot[1,0]*myneighbourg[0]+rot[1,1]*myneighbourg[1]+rot[1,2]*myneighbourg[2]"
   ]
  },
  {
   "cell_type": "code",
346
   "execution_count": 15,
347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367
   "metadata": {
    "collapsed": true,
    "hide_input": false
   },
   "outputs": [],
   "source": [
    "bins_pot_los = np.linspace(0.,myhydro.dm.r.max(),512)\n",
    "mean_phi_los = np.array([])\n",
    "std_phi_los = np.array([])\n",
    "r_phi_los = np.array([])\n",
    "for i in range(len(bins_pot_los)-1):\n",
    "    contidion = (cone_r2>bins_pot_los[i]**2)&(cone_r2<bins_pot_los[i+1]**2)\n",
    "    mean_phi_los = np.append(mean_phi_los,np.average(cone_Phy[contidion]))\n",
    "    std_phi_los = np.append(std_phi_los,np.std((cone_Phy[contidion])))\n",
    "    r_phi_los = np.append(r_phi_los, ((bins_pot_los[i])+(bins_pot_los[i+1]))/2)\n",
    "    \n",
    "    "
   ]
  },
  {
   "cell_type": "code",
368
   "execution_count": 16,
369 370 371 372 373 374 375 376 377
   "metadata": {
    "collapsed": false,
    "hide_input": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
378
      "r_neigh = 3853.34 kpc, r_max = 2908.43 kpc, pot_max = -27342.01 pc km^2 M_sun s^-2\n"
379 380 381 382 383 384 385 386 387 388 389 390 391
     ]
    }
   ],
   "source": [
    "tonei = (r_phi_los<np.sqrt(r_nei2))\n",
    "r_relevant = r_phi_los[tonei]\n",
    "R_MAXH = r_relevant[mean_phi_los[tonei]==(mean_phi_los[tonei]).max()][0]\n",
    "pot_maxH = mean_phi_los[tonei].max()\n",
    "print \"r_neigh = {0:.2f} kpc, r_max = {1:0.2f} kpc, pot_max = {2:.2f} pc km^2 M_sun s^-2\".format(np.sqrt(r_nei2),R_MAXH, pot_maxH)"
   ]
  },
  {
   "cell_type": "code",
392
   "execution_count": 17,
393 394 395 396 397 398 399 400 401 402 403
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#R_MAXH = 1725.09\n",
    "#pot_maxH = -21926.61"
   ]
  },
  {
   "cell_type": "code",
404
   "execution_count": 18,
405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\n",
       "window.mpl = {};\n",
       "\n",
       "mpl.get_websocket_type = function() {\n",
       "    if (typeof(WebSocket) !== 'undefined') {\n",
       "        return WebSocket;\n",
       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
       "        return MozWebSocket;\n",
       "    } else {\n",
       "        alert('Your browser does not have WebSocket support.' +\n",
       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
       "              'Firefox 4 and 5 are also supported but you ' +\n",
       "              'have to enable WebSockets in about:config.');\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
       "    this.id = figure_id;\n",
       "\n",
       "    this.ws = websocket;\n",
       "\n",
       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
       "\n",
       "    if (!this.supports_binary) {\n",
       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
       "        if (warnings) {\n",
       "            warnings.style.display = 'block';\n",
       "            warnings.textContent = (\n",
       "                \"This browser does not support binary websocket messages. \" +\n",
       "                    \"Performance may be slow.\");\n",
       "        }\n",
       "    }\n",
       "\n",
       "    this.imageObj = new Image();\n",
       "\n",
       "    this.context = undefined;\n",
       "    this.message = undefined;\n",
       "    this.canvas = undefined;\n",
       "    this.rubberband_canvas = undefined;\n",
       "    this.rubberband_context = undefined;\n",
       "    this.format_dropdown = undefined;\n",
       "\n",
       "    this.image_mode = 'full';\n",
       "\n",
       "    this.root = $('<div/>');\n",
       "    this._root_extra_style(this.root)\n",
       "    this.root.attr('style', 'display: inline-block');\n",
       "\n",
       "    $(parent_element).append(this.root);\n",
       "\n",
       "    this._init_header(this);\n",
       "    this._init_canvas(this);\n",
       "    this._init_toolbar(this);\n",
       "\n",
       "    var fig = this;\n",
       "\n",
       "    this.waiting = false;\n",
       "\n",
       "    this.ws.onopen =  function () {\n",
       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
       "            fig.send_message(\"send_image_mode\", {});\n",
       "            fig.send_message(\"refresh\", {});\n",
       "        }\n",
       "\n",
       "    this.imageObj.onload = function() {\n",
       "            if (fig.image_mode == 'full') {\n",
       "                // Full images could contain transparency (where diff images\n",
       "                // almost always do), so we need to clear the canvas so that\n",
       "                // there is no ghosting.\n",
       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
       "            }\n",
       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
       "        };\n",
       "\n",
       "    this.imageObj.onunload = function() {\n",
       "        this.ws.close();\n",
       "    }\n",
       "\n",
       "    this.ws.onmessage = this._make_on_message_function(this);\n",
       "\n",
       "    this.ondownload = ondownload;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_header = function() {\n",
       "    var titlebar = $(\n",
       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
       "        'ui-helper-clearfix\"/>');\n",
       "    var titletext = $(\n",
       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
       "        'text-align: center; padding: 3px;\"/>');\n",
       "    titlebar.append(titletext)\n",
       "    this.root.append(titlebar);\n",
       "    this.header = titletext[0];\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = $('<div/>');\n",
       "\n",
       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
       "\n",
       "    function canvas_keyboard_event(event) {\n",
       "        return fig.key_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
       "    this.canvas_div = canvas_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width);\n",
       "        canvas.attr('height', height);\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
       "        return false;\n",
       "    });\n",
       "\n",
       "    function set_focus () {\n",
       "        canvas.focus();\n",
       "        canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    window.setTimeout(set_focus, 100);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
       "    // which will in turn request a refresh of the image.\n",
       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_message = function(type, properties) {\n",
       "    properties['type'] = type;\n",
       "    properties['figure_id'] = this.id;\n",
       "    this.ws.send(JSON.stringify(properties));\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_draw_message = function() {\n",
       "    if (!this.waiting) {\n",
       "        this.waiting = true;\n",
       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    var format_dropdown = fig.format_dropdown;\n",
       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
       "    fig.ondownload(fig, format);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
       "    var size = msg['size'];\n",
       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
       "        fig._resize_canvas(size[0], size[1]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'];\n",
       "    var y0 = fig.canvas.height - msg['y0'];\n",
       "    var x1 = msg['x1'];\n",
       "    var y1 = fig.canvas.height - msg['y1'];\n",
       "    x0 = Math.floor(x0) + 0.5;\n",
       "    y0 = Math.floor(y0) + 0.5;\n",
       "    x1 = Math.floor(x1) + 0.5;\n",
       "    y1 = Math.floor(y1) + 0.5;\n",
       "    var min_x = Math.min(x0, x1);\n",
       "    var min_y = Math.min(y0, y1);\n",
       "    var width = Math.abs(x1 - x0);\n",
       "    var height = Math.abs(y1 - y0);\n",
       "\n",
       "    fig.rubberband_context.clearRect(\n",
       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
       "\n",
       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
       "    // Updates the figure title.\n",
       "    fig.header.textContent = msg['label'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
       "    var cursor = msg['cursor'];\n",
       "    switch(cursor)\n",
       "    {\n",
       "    case 0:\n",
       "        cursor = 'pointer';\n",
       "        break;\n",
       "    case 1:\n",
       "        cursor = 'default';\n",
       "        break;\n",
       "    case 2:\n",
       "        cursor = 'crosshair';\n",
       "        break;\n",
       "    case 3:\n",
       "        cursor = 'move';\n",
       "        break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = cursor;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
       "    fig.message.textContent = msg['message'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
       "    // Request the server to send over a new figure.\n",
       "    fig.send_draw_message();\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
       "    fig.image_mode = msg['mode'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Called whenever the canvas gets updated.\n",
       "    this.send_message(\"ack\", {});\n",
       "}\n",
       "\n",
       "// A function to construct a web socket function for onmessage handling.\n",
       "// Called in the figure constructor.\n",
       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
       "    return function socket_on_message(evt) {\n",
       "        if (evt.data instanceof Blob) {\n",
       "            /* FIXME: We get \"Resource interpreted as Image but\n",
       "             * transferred with MIME type text/plain:\" errors on\n",
       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
       "             * to be part of the websocket stream */\n",
       "            evt.data.type = \"image/png\";\n",
       "\n",
       "            /* Free the memory for the previous frames */\n",
       "            if (fig.imageObj.src) {\n",
       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
       "                    fig.imageObj.src);\n",
       "            }\n",
       "\n",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
       "            fig.imageObj.src = evt.data;\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        var msg = JSON.parse(evt.data);\n",
       "        var msg_type = msg['type'];\n",
       "\n",
       "        // Call the  \"handle_{type}\" callback, which takes\n",
       "        // the figure and JSON message as its only arguments.\n",
       "        try {\n",
       "            var callback = fig[\"handle_\" + msg_type];\n",
       "        } catch (e) {\n",
       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        if (callback) {\n",
       "            try {\n",
       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
       "                callback(fig, msg);\n",
       "            } catch (e) {\n",
       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
       "            }\n",
       "        }\n",
       "    };\n",
       "}\n",
       "\n",
       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
       "mpl.findpos = function(e) {\n",
       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
       "    var targ;\n",
       "    if (!e)\n",
       "        e = window.event;\n",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\n",
       "\n",
       "    return {\"x\": x, \"y\": y};\n",
       "};\n",
       "\n",
       "/*\n",
       " * return a copy of an object with only non-object keys\n",
       " * we need this to avoid circular references\n",
       " * http://stackoverflow.com/a/24161582/3208463\n",
       " */\n",
       "function simpleKeys (original) {\n",
       "  return Object.keys(original).reduce(function (obj, key) {\n",
       "    if (typeof original[key] !== 'object')\n",
       "        obj[key] = original[key]\n",
       "    return obj;\n",
       "  }, {});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
       "    var canvas_pos = mpl.findpos(event)\n",
       "\n",
       "    if (name === 'button_press')\n",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x;\n",
       "    var y = canvas_pos.y;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "\n",
       "    /* This prevents the web browser from automatically changing to\n",
       "     * the text insertion cursor when the button is pressed.  We want\n",
       "     * to control all of the cursor setting manually through the\n",
       "     * 'cursor' event from matplotlib */\n",
       "    event.preventDefault();\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    // Handle any extra behaviour associated with a key event\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.key_event = function(event, name) {\n",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\n",
       "\n",
       "    this._key_event_extra(event, name);\n",
       "\n",
       "    this.send_message(name, {key: value,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
       "    if (name == 'download') {\n",
       "        this.handle_save(this, null);\n",
       "    } else {\n",
       "        this.send_message(\"toolbar_button\", {name: name});\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
       "    this.message.textContent = tooltip;\n",
       "};\n",
       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
       "\n",
       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
       "    // object with the appropriate methods. Currently this is a non binary\n",
       "    // socket, so there is still some room for performance tuning.\n",
       "    var ws = {};\n",
       "\n",
       "    ws.close = function() {\n",
       "        comm.close()\n",
       "    };\n",
       "    ws.send = function(m) {\n",
       "        //console.log('sending', m);\n",
       "        comm.send(m);\n",
       "    };\n",
       "    // Register the callback with on_msg.\n",
       "    comm.on_msg(function(msg) {\n",
       "        //console.log('receiving', msg['content']['data'], msg);\n",
       "        // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['data'])\n",
       "    });\n",
       "    return ws;\n",
       "}\n",
       "\n",
       "mpl.mpl_figure_comm = function(comm, msg) {\n",
       "    // This is the function which gets called when the mpl process\n",
       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
       "\n",
       "    var id = msg.content.data.id;\n",
       "    // Get hold of the div created by the display call when the Comm\n",
       "    // socket was opened in Python.\n",
       "    var element = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\n",
       "\n",
       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
       "    // web socket which is closed, not our websocket->open comm proxy.\n",
       "    ws_proxy.onopen();\n",
       "\n",
       "    fig.parent_element = element.get(0);\n",
       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
       "    if (!fig.cell_info) {\n",
       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
       "        return;\n",
       "    }\n",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    fig.root.unbind('remove')\n",
       "\n",
       "    // Update the output cell to use the data from the current canvas.\n",
       "    fig.push_to_output();\n",
       "    var dataURL = fig.canvas.toDataURL();\n",
       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
       "    // the notebook keyboard shortcuts fail.\n",
       "    IPython.keyboard_manager.enable()\n",
       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n",
       "    fig.close_ws(fig, msg);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
       "    fig.send_message('closing', msg);\n",
       "    // fig.ws.close()\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
       "    // Turn the data on the canvas into data in the output cell.\n",
       "    var dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Tell IPython that the notebook contents must change.\n",
       "    IPython.notebook.set_dirty(true);\n",
       "    this.send_message(\"ack\", {});\n",
       "    var fig = this;\n",
       "    // Wait a second, then push the new image to the DOM so\n",
       "    // that it is saved nicely (might be nice to debounce this).\n",
       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items){\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
       "    buttongrp.append(button);\n",
       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
       "    titlebar.prepend(buttongrp);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(el){\n",
       "    var fig = this\n",
       "    el.on(\"remove\", function(){\n",
       "\tfig.close_ws(fig, {});\n",
       "    });\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
       "    // this is important to make the div 'focusable\n",
       "    el.attr('tabindex', 0)\n",
       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
       "    // off when our div gets focus\n",
       "\n",
       "    // location in version 3\n",
       "    if (IPython.notebook.keyboard_manager) {\n",
       "        IPython.notebook.keyboard_manager.register_events(el);\n",
       "    }\n",
       "    else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager)\n",
       "        manager = IPython.keyboard_manager;\n",
       "\n",
       "    // Check for shift+enter\n",
       "    if (event.shiftKey && event.which == 13) {\n",
       "        this.canvas_div.blur();\n",
       "        event.shiftKey = false;\n",
       "        // Send a \"J\" for go to next cell\n",
       "        event.which = 74;\n",
       "        event.keyCode = 74;\n",
       "        manager.command_mode();\n",
       "        manager.handle_keydown(event);\n",
       "    }\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    fig.ondownload(fig, null);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.find_output_cell = function(html_output) {\n",
       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
       "    // IPython event is triggered only after the cells have been serialised, which for\n",
       "    // our purposes (turning an active figure into a static one), is too late.\n",
       "    var cells = IPython.notebook.get_cells();\n",
       "    var ncells = cells.length;\n",
       "    for (var i=0; i<ncells; i++) {\n",
       "        var cell = cells[i];\n",
       "        if (cell.cell_type === 'code'){\n",
       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
       "                var data = cell.output_area.outputs[j];\n",
       "                if (data.data) {\n",
       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
       "                    data = data.data;\n",
       "                }\n",
       "                if (data['text/html'] == html_output) {\n",
       "                    return [cell, data, j];\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    }\n",
       "}\n",
       "\n",
       "// Register the function which deals with the matplotlib target/channel.\n",
       "// The kernel may be null if the page has been refreshed.\n",
       "if (IPython.notebook.kernel != null) {\n",
       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
1176
       "<img src=\"data:image/png;base64,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\">"
1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "fig, ax = plt.subplots(1,2,figsize=[12,5])\n",
    "\n",
    "#fig, ax[0] = plt.subplots()\n",
    "ax[0].set_xlim([0,5000])\n",
    "ax[0].set_ylim([-7.7e5,0])\n",
    "#ax.set_ylim([pot_sph.min(),np.abs(pot_sph.min())/6.])\n",
    "ax[0].set_ylabel(r'$\\Phi$ [kpc $^2$ M$_{\\odot}$ s$^{-2}$ ] ', fontsize=15)\n",
    "#ax.set_xscale('log')\n",
    "ax[0].set_xlabel(r'r [kpc] ', fontsize=15)\n",
    "ax[0].plot(r_phi_los, mean_phi_los+std_phi_los, 'b--')\n",
    "ax[0].plot(r_phi_los, mean_phi_los-std_phi_los, 'b--')\n",
    "ax[0].plot(r_phi_los, mean_phi_los, 'bo-',markersize=0.8,label=\"l.o.s\")\n",
    "#ax[0].plot(r_phi,mean_phi,color='gray',ls='-', label='Shell')\n",
    "#ax[0].plot(r_phi,mean_phi+std_phi,color='gray',ls='--')\n",
    "#ax[0].plot(r_phi,mean_phi-std_phi,color='gray',ls='--')\n",
    "ax[0].axvline(x=R_MAXH,color='k',linestyle='--')\n",
    "\n",
    "\n",
    "ax[1].set_ylim([0,4e3])\n",
    "ax[1].set_xlim([0,4e3])\n",
    "ax[1].set_xlabel(r' kpc ', fontsize=15)\n",
    "ax[1].set_ylabel(r' kpc ', fontsize=15)\n",
    "texto_neigh = \"First massive neighbourg: \\n\"\n",
    "texto_neigh += \"M = {0:.4e}\".format(mass_neigh)\n",
    "texto_neigh += r\" M$_{\\odot}$\"+\"\\n\"\n",
    "texto_neigh += r\"r$_{200} = $ \"+\"{0:.2f} kpc\\n\".format(r200_neigh)\n",
    "texto_neigh += r\"r$_{max} = $ \"+\"{0:.2f} kpc\".format(float(R_MAXH))\n",
    "fig.text(.6,.8,\"L.O.S\",fontsize=17)\n",
    "fig.text(.6,.61,texto_neigh)\n",
    "#ax[1].scatter(my_cone[:,0], my_cone[:,1],c=\"#902b08\",lw=0,s=0.04,alpha=0.6)\n",
    "ax[1].scatter(-cone_prox, -cone_proy,c=\"#902b08\",lw=0,s=0.01,alpha=0.4)\n",
    "\n",
    "#ax[1].scatter(myneighbourg[0],myneighbourg[1],s=20)\n",
    "ax[1].scatter(np.sqrt(r_nei2)*np.cos(np.pi/4.),np.sqrt(r_nei2)*np.sin(np.pi/4.),s=30,lw=0)\n",
    "circle = plt.Circle(((0),(0)),myhydro.r200, color='k',lw=1, fill=False)\n",
    "ax[1].add_patch( circle )\n",
    "circle = plt.Circle(((0),(0)),myhydro.r97, color='k',lw=1, fill=False)\n",
    "ax[1].add_patch( circle )\n",
    "circle = plt.Circle(((0),(0)),R_MAXH, color='k',ls='--',lw=1, fill=False)\n",
    "ax[1].add_patch( circle )\n",
    "ax[1].text(-myhydro.r200-15,20,r'r$_{200}$')\n",
    "ax[1].text(-myhydro.r97-100,-20,r'r$_{97}$')\n",
    "\n",
    "circle = plt.Circle((np.sqrt(r_nei2)*np.cos(np.pi/4.),np.sqrt(r_nei2)*np.sin(np.pi/4.)),r200_neigh, color='w',lw=0.9, fill=False)\n",
    "ax[1].add_patch( circle )\n",
    "\n",
    "\n",
    "legend = ax[0].legend(loc='lower left', ncol=1, shadow=False, fontsize=16)\n",
    "frame = legend.get_frame()\n",
    "fig.tight_layout(w_pad=0)\n",
    "ax[0].tick_params(axis='both', which='major', labelsize=15, size=5,width=1.2)\n",
    "ax[0].tick_params(axis='both', which='minor', labelsize=15, size=3,width=1.2)\n",
    "ax[1].tick_params(axis='both', which='major', labelsize=15, size=5,width=1.2)\n",
    "ax[1].tick_params(axis='both', which='minor', labelsize=15, size=3,width=1.2)\n",
1242
    "fig.savefig(\"/home/arturo/Documents/LAM/LAM2LUPM/Adicora/HYDRO/Rmax.png\")"
1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false,
    "hide_input": false,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "#pot_maxH = -30000\n",
    "#pot_maxH = -24605.33\n",
    "#R_MAXH = 804.73"
   ]
  },
  {
   "cell_type": "code",
1262
   "execution_count": 20,
1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "potdatDMO = np.loadtxt(\"../../datafiles/Psi_halo_B_DMO_Rmax=805.0kpc_dimensionful.txt\")\n",
    "potdatHyd = np.loadtxt(\"../../datafiles/Psi_halo_B_DM_baryons_Rmax=805.0kpc_dimensionful.txt\")\n"
   ]
  },
  {
   "cell_type": "code",
1274
   "execution_count": 27,
1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "bins_pot = np.logspace(-0.5,np.log10(myhydro.dm.r.max()),100)\n",
    "mean_phi = np.array([])\n",
    "std_phi = np.array([])\n",
    "r_phi = np.array([])\n",
    "for i in range(len(bins_pot)-1):\n",
    "    contidion = (r2>bins_pot[i]**2)&(r2<bins_pot[i+1]**2)   \n",
    "    mean_phi = np.append(mean_phi,np.average(Phy[contidion]))\n",
    "    std_phi = np.append(std_phi,np.std((Phy[contidion])))\n",
    "    r_phi = np.append(r_phi, ((bins_pot[i])+(bins_pot[i+1]))/2)"
   ]
  },
  {
   "cell_type": "code",
1293
   "execution_count": 28,
1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "##### this is for hydro\n",
    "rho = np.array([7.6676,6.6669,1.4075,2.7560,0.0898])\n",
    "\n",
    "def abg_profile(x,po,r_s,al,be,ga):\n",
    "    power =  (be - ga) / al\n",
    "    denominator = ((x/r_s)**ga) * ((1 + (x / r_s)**al)**power)\n",
    "    return (10**po) / denominator\n",
    "\n",
    "def TM_dm(r_end,rho_s):\n",
    "    def integrand1(r):\n",
    "        return 4* np.pi* (r**2) * (abg_profile(r,rho_s,rho[1],rho[2],rho[3],rho[4]))\n",
    "    return quad(integrand1,0, r_end)[0]\n",
    "\n",
    "def TM2_dm(r,rho_s):\n",
    "    def integrand1(r):\n",
    "        return 4* np.pi* r * (abg_profile(r,rho_s,rho[1],rho[2],rho[3],rho[4]))\n",
    "    return quad(integrand1,r, R_MAXH)[0]\n",
    "\n",
    "def stars(R,z,B_0,r0,al,r_cut,q,d_0,z_d,Rd,D_0,z_D,RD):\n",
    "    def McMBulge(U,B_0,r0,al,r_cut):\n",
    "        x = np.sqrt(U[0]**2 + (U[1]/q)**2)\n",
    "        bulge = (10**B_0) * np.exp(-(x/r_cut)**2) / (1 + (x/r0))**al\n",
    "        return bulge\n",
    "\n",
    "    def McMDisc(x,z,z_d,D_0,Rd):\n",
    "        disc = (10**D_0) * np.exp(- (abs(z) / z_d) - (x / Rd))\n",
    "        return disc\n",
    "    U = [R,z]\n",
    "    return (McMBulge(U,B_0,r0,al,r_cut)+McMDisc(U[0],U[1],z_d,d_0,Rd)+McMDisc(U[0],U[1],z_D,D_0,RD))\n",
    "\n",
    "def gas(R,z,D_0,z_d,Rd):        \n",
    "    return (10**D_0) * np.exp( - (R / Rd)) / (np.cosh(z /2./ z_d))**2\n",
    "\n",
    "\n",
    "st = np.array([9.5591,0.6407,3.7140,0.6177,0.9843,9.3026,0.7869,0.8915,8.4928,0.9000,4.8636])\n",
    "\n",
    "def TM_st(r_end,B_s,d_s,D_s):\n",
    "    def integrand(r,theta):\n",
    "        \n",
    "        return 2*np.pi*np.sin(theta)* r**2 * (stars(r*np.sin(theta),r*np.cos(theta),B_s,st[1],st[2],st[3],st[4],d_s,st[6],st[7],D_s,st[9],st[10]))\n",
    "    \n",
    "    return nquad(integrand,[[0.0,r_end],[0.0,np.pi]])[0]\n",
    "\n",
    "gs = np.array([8.415 , 0.131,7.510])\n",
    "def TM_gs(r_end,D_s):\n",
    "    def integrand(r,theta):\n",
    "        \n",
    "        return 2*np.pi*np.sin(theta)* r**2 * (gas(r*np.sin(theta),r*np.cos(theta),D_s,gs[1],gs[2]))\n",
    "    \n",
    "    return nquad(integrand,[[0.0,r_end],[0.0,np.pi]])[0]\n",
    "\n",
    "def TM2_st(r_end,B_s,d_s,D_s):\n",
    "    def integrand(r,theta):\n",
    "        \n",
    "        return 2*np.pi *np.sin(theta)* r * (stars(r*np.sin(theta),r*np.cos(theta),B_s,st[1],st[2],st[3],st[4],d_s,st[6],st[7],D_s,st[9],st[10]))\n",
    "    \n",
    "    return nquad(integrand,[[r_end,R_MAXH],[0,np.pi]])[0]\n",
    "\n",
    "def TM2_gs(r_end,D_s):\n",
    "    def integrand(r,theta):\n",
    "        \n",
    "        return 2*np.pi *np.sin(theta)* r * (gas(r*np.sin(theta),r*np.cos(theta),D_s,gs[1],gs[2]))\n",
    "    \n",
    "    return nquad(integrand,[[r_end,R_MAXH],[0,np.pi]])[0]"
   ]
  },
  {
   "cell_type": "code",
1367
   "execution_count": 29,
1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "g_factor = (myhydro.p.pctocm*10)**2 / 1e6\n",
    "G_phiunits = myhydro.p.G * g_factor\n",
    "\n",
    "r_mass = np.logspace(0,np.log10(6*myhydro.r200), 100)\n",
    "mass_sim =np.array([np.sum(mass[r2<i**2]) for i in r_mass])\n",
    "phi_mass = np.array([(np.trapz(mass_sim[:i]/r_mass[:i]**2,x=r_mass[:i])) for i in range(len(r_mass))])\n",
    "minmin = (np.abs(r_mass-R_MAXH)==np.abs(r_mass-R_MAXH).min())\n",
    "phi_massH = (G_phiunits*phi_mass[minmin])-(G_phiunits*phi_mass)\n",
    "\n",
    "def full_potential(rho_s,B_s,d_s,D_s):\n",
    "    # firt term in equation 3.22 magni's thesis\n",
    "    mass_fit = np.array([TM_dm(i,rho_s) for i in r_mass])\n",
    "    mass_fit_st = np.array([TM_st(i,B_s,d_s,D_s) for i in r_mass])\n",
    "    # second term in equation 3.22 magni's thesis\n",
    "    mass_fit2 = np.array([TM2_dm(i,rho_s) for i in r_mass])\n",
    "    mass_fit_st2 = np.array([TM2_st(i,B_s,d_s,D_s) for i in r_mass])\n",
    "    Psi = - G_phiunits *((mass_fit/r_mass)+mass_fit2+(mass_fit_st/r_mass)+mass_fit_st2)\n",
    "    chi = np.log10(Psi[minmin]-Psi)-np.log10(phi_massH)\n",
    "    return np.sum(chi)**2\n"
   ]
  },
  {
   "cell_type": "code",
1397
   "execution_count": 30,
1398 1399 1400 1401 1402 1403 1404 1405 1406 1407
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\nmmass=Minuit(full_potential, \\n             rho_s=7.6,  error_rho_s=0.5,     limit_rho_s=(7.51,7.69),  \\n             B_s=8.70134,  error_B_s=0.5,     limit_B_s=(6.7,10.7),\\n             d_s=8.68555,  error_d_s=0.5,     limit_d_s=(7.6,9.6),\\n             D_s=7.88276,  error_D_s=0.5,     limit_D_s=(6.9,8.7))\\n#         print_level=0)\\nmmass.migrad();\\n'"
      ]
     },
1408
     "execution_count": 30,
1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"\"\"\n",
    "mmass=Minuit(full_potential, \n",
    "             rho_s=7.6,  error_rho_s=0.5,     limit_rho_s=(7.51,7.69),  \n",
    "             B_s=8.70134,  error_B_s=0.5,     limit_B_s=(6.7,10.7),\n",
    "             d_s=8.68555,  error_d_s=0.5,     limit_d_s=(7.6,9.6),\n",
    "             D_s=7.88276,  error_D_s=0.5,     limit_D_s=(6.9,8.7))\n",
    "#         print_level=0)\n",
    "mmass.migrad();\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
1427
   "execution_count": 31,
1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "### takes some time\n",
    "# this is for Hydro\n",
    "r_mass = np.logspace(0,np.log10(R_MAXH), 100)\n",
    "mass_sim =np.array([np.sum(mass[r2<i**2]) for i in r_mass])\n",
    "phi_mass = np.array([(np.trapz(mass_sim[:i]/r_mass[:i]**2,x=r_mass[:i])) for i in range(len(r_mass))])\n",
    "g_factor = (myhydro.p.pctocm*10)**2 / 1e6\n",
    "G_phiunits = myhydro.p.G * g_factor\n",
    "### BEWARE HARD NUMBER ALERT\n",
    "effective_Rmax = R_MAXH - 550\n",
    "minmin = (np.abs(r_mass-effective_Rmax)==np.abs(r_mass-effective_Rmax).min())\n",
    "phi_massH = (G_phiunits*phi_mass[minmin])-(G_phiunits*phi_mass)"
   ]
  },
  {
   "cell_type": "code",
1448
   "execution_count": 32,
1449 1450 1451 1452 1453
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
1454 1455 1456 1457
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "now making Psi\n"
1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478
     ]
    }
   ],
   "source": [
    "#st = np.array([8.7,0.200,1.280,2.426,0.400,8.68, 0.481, 3.559, 7.8, 1.046, 7.069])\n",
    "\n",
    "# firt term in equation 3.22 magni's thesis\n",
    "mass_fit = np.array([TM_dm(i,rho[0]) for i in r_mass])\n",
    "mass_fit_st = np.array([TM_st(i,st[0],st[5],st[8]) for i in r_mass])\n",
    "mass_fit_gs = np.array([TM_gs(i,gs[0]) for i in r_mass])\n",
    "\n",
    "# second term in equation 3.22 magni's thesis\n",
    "mass_fit2 = np.array([TM2_dm(i,rho[0]) for i in r_mass])\n",
    "mass_fit_st2 = np.array([TM2_st(i,st[0],st[5],st[8]) for i in r_mass])\n",
    "mass_fit_gs2 = np.array([TM2_gs(i,gs[0]) for i in r_mass])\n",
    "print \"now making Psi\"\n",
    "Psi = - G_phiunits *((mass_fit/r_mass)+mass_fit2+(mass_fit_st/r_mass)+mass_fit_st2+(mass_fit_gs/r_mass)+mass_fit_gs2)"
   ]
  },
  {
   "cell_type": "code",
1479
   "execution_count": 33,
1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\n",
       "window.mpl = {};\n",
       "\n",
       "mpl.get_websocket_type = function() {\n",
       "    if (typeof(WebSocket) !== 'undefined') {\n",
       "        return WebSocket;\n",
       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
       "        return MozWebSocket;\n",
       "    } else {\n",
       "        alert('Your browser does not have WebSocket support.' +\n",
       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
       "              'Firefox 4 and 5 are also supported but you ' +\n",
       "              'have to enable WebSockets in about:config.');\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
       "    this.id = figure_id;\n",
       "\n",
       "    this.ws = websocket;\n",
       "\n",
       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
       "\n",
       "    if (!this.supports_binary) {\n",
       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
       "        if (warnings) {\n",
       "            warnings.style.display = 'block';\n",
       "            warnings.textContent = (\n",
       "                \"This browser does not support binary websocket messages. \" +\n",
       "                    \"Performance may be slow.\");\n",
       "        }\n",
       "    }\n",
       "\n",
       "    this.imageObj = new Image();\n",
       "\n",
       "    this.context = undefined;\n",
       "    this.message = undefined;\n",
       "    this.canvas = undefined;\n",
       "    this.rubberband_canvas = undefined;\n",
       "    this.rubberband_context = undefined;\n",
       "    this.format_dropdown = undefined;\n",
       "\n",
       "    this.image_mode = 'full';\n",
       "\n",
       "    this.root = $('<div/>');\n",
       "    this._root_extra_style(this.root)\n",
       "    this.root.attr('style', 'display: inline-block');\n",
       "\n",
       "    $(parent_element).append(this.root);\n",
       "\n",
       "    this._init_header(this);\n",
       "    this._init_canvas(this);\n",
       "    this._init_toolbar(this);\n",
       "\n",
       "    var fig = this;\n",
       "\n",
       "    this.waiting = false;\n",
       "\n",
       "    this.ws.onopen =  function () {\n",
       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
       "            fig.send_message(\"send_image_mode\", {});\n",
       "            fig.send_message(\"refresh\", {});\n",
       "        }\n",
       "\n",
       "    this.imageObj.onload = function() {\n",
       "            if (fig.image_mode == 'full') {\n",
       "                // Full images could contain transparency (where diff images\n",
       "                // almost always do), so we need to clear the canvas so that\n",
       "                // there is no ghosting.\n",
       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
       "            }\n",
       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
       "        };\n",
       "\n",
       "    this.imageObj.onunload = function() {\n",
       "        this.ws.close();\n",
       "    }\n",
       "\n",
       "    this.ws.onmessage = this._make_on_message_function(this);\n",
       "\n",
       "    this.ondownload = ondownload;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_header = function() {\n",
       "    var titlebar = $(\n",
       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
       "        'ui-helper-clearfix\"/>');\n",
       "    var titletext = $(\n",
       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
       "        'text-align: center; padding: 3px;\"/>');\n",
       "    titlebar.append(titletext)\n",
       "    this.root.append(titlebar);\n",
       "    this.header = titletext[0];\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = $('<div/>');\n",
       "\n",
       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
       "\n",
       "    function canvas_keyboard_event(event) {\n",
       "        return fig.key_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
       "    this.canvas_div = canvas_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width);\n",
       "        canvas.attr('height', height);\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
       "        return false;\n",
       "    });\n",
       "\n",
       "    function set_focus () {\n",
       "        canvas.focus();\n",
       "        canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    window.setTimeout(set_focus, 100);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
       "    // which will in turn request a refresh of the image.\n",
       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_message = function(type, properties) {\n",
       "    properties['type'] = type;\n",
       "    properties['figure_id'] = this.id;\n",
       "    this.ws.send(JSON.stringify(properties));\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_draw_message = function() {\n",
       "    if (!this.waiting) {\n",
       "        this.waiting = true;\n",
       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    var format_dropdown = fig.format_dropdown;\n",
       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
       "    fig.ondownload(fig, format);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
       "    var size = msg['size'];\n",
       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
       "        fig._resize_canvas(size[0], size[1]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'];\n",
       "    var y0 = fig.canvas.height - msg['y0'];\n",
       "    var x1 = msg['x1'];\n",
       "    var y1 = fig.canvas.height - msg['y1'];\n",
       "    x0 = Math.floor(x0) + 0.5;\n",
       "    y0 = Math.floor(y0) + 0.5;\n",
       "    x1 = Math.floor(x1) + 0.5;\n",
       "    y1 = Math.floor(y1) + 0.5;\n",
       "    var min_x = Math.min(x0, x1);\n",
       "    var min_y = Math.min(y0, y1);\n",
       "    var width = Math.abs(x1 - x0);\n",
       "    var height = Math.abs(y1 - y0);\n",
       "\n",
       "    fig.rubberband_context.clearRect(\n",
       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
       "\n",
       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
       "    // Updates the figure title.\n",
       "    fig.header.textContent = msg['label'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
       "    var cursor = msg['cursor'];\n",
       "    switch(cursor)\n",
       "    {\n",
       "    case 0:\n",
       "        cursor = 'pointer';\n",
       "        break;\n",
       "    case 1:\n",
       "        cursor = 'default';\n",
       "        break;\n",
       "    case 2:\n",
       "        cursor = 'crosshair';\n",
       "        break;\n",
       "    case 3:\n",
       "        cursor = 'move';\n",
       "        break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = cursor;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
       "    fig.message.textContent = msg['message'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
       "    // Request the server to send over a new figure.\n",
       "    fig.send_draw_message();\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
       "    fig.image_mode = msg['mode'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Called whenever the canvas gets updated.\n",
       "    this.send_message(\"ack\", {});\n",
       "}\n",
       "\n",
       "// A function to construct a web socket function for onmessage handling.\n",
       "// Called in the figure constructor.\n",
       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
       "    return function socket_on_message(evt) {\n",
       "        if (evt.data instanceof Blob) {\n",
       "            /* FIXME: We get \"Resource interpreted as Image but\n",
       "             * transferred with MIME type text/plain:\" errors on\n",
       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
       "             * to be part of the websocket stream */\n",
       "            evt.data.type = \"image/png\";\n",
       "\n",
       "            /* Free the memory for the previous frames */\n",
       "            if (fig.imageObj.src) {\n",
       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
       "                    fig.imageObj.src);\n",
       "            }\n",
       "\n",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
       "            fig.imageObj.src = evt.data;\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        var msg = JSON.parse(evt.data);\n",
       "        var msg_type = msg['type'];\n",
       "\n",
       "        // Call the  \"handle_{type}\" callback, which takes\n",
       "        // the figure and JSON message as its only arguments.\n",
       "        try {\n",
       "            var callback = fig[\"handle_\" + msg_type];\n",
       "        } catch (e) {\n",
       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        if (callback) {\n",
       "            try {\n",
       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
       "                callback(fig, msg);\n",
       "            } catch (e) {\n",
       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
       "            }\n",
       "        }\n",
       "    };\n",
       "}\n",
       "\n",
       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
       "mpl.findpos = function(e) {\n",
       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
       "    var targ;\n",
       "    if (!e)\n",
       "        e = window.event;\n",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\n",
       "\n",
       "    return {\"x\": x, \"y\": y};\n",
       "};\n",
       "\n",
       "/*\n",
       " * return a copy of an object with only non-object keys\n",
       " * we need this to avoid circular references\n",
       " * http://stackoverflow.com/a/24161582/3208463\n",
       " */\n",
       "function simpleKeys (original) {\n",
       "  return Object.keys(original).reduce(function (obj, key) {\n",
       "    if (typeof original[key] !== 'object')\n",
       "        obj[key] = original[key]\n",
       "    return obj;\n",
       "  }, {});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
       "    var canvas_pos = mpl.findpos(event)\n",
       "\n",
       "    if (name === 'button_press')\n",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x;\n",
       "    var y = canvas_pos.y;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "\n",
       "    /* This prevents the web browser from automatically changing to\n",
       "     * the text insertion cursor when the button is pressed.  We want\n",
       "     * to control all of the cursor setting manually through the\n",
       "     * 'cursor' event from matplotlib */\n",
       "    event.preventDefault();\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    // Handle any extra behaviour associated with a key event\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.key_event = function(event, name) {\n",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\n",
       "\n",
       "    this._key_event_extra(event, name);\n",
       "\n",
       "    this.send_message(name, {key: value,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
       "    if (name == 'download') {\n",
       "        this.handle_save(this, null);\n",
       "    } else {\n",
       "        this.send_message(\"toolbar_button\", {name: name});\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
       "    this.message.textContent = tooltip;\n",
       "};\n",
       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
       "\n",
       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
       "    // object with the appropriate methods. Currently this is a non binary\n",
       "    // socket, so there is still some room for performance tuning.\n",
       "    var ws = {};\n",
       "\n",
       "    ws.close = function() {\n",
       "        comm.close()\n",
       "    };\n",
       "    ws.send = function(m) {\n",
       "        //console.log('sending', m);\n",
       "        comm.send(m);\n",
       "    };\n",
       "    // Register the callback with on_msg.\n",
       "    comm.on_msg(function(msg) {\n",
       "        //console.log('receiving', msg['content']['data'], msg);\n",
       "        // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['data'])\n",
       "    });\n",
       "    return ws;\n",
       "}\n",
       "\n",
       "mpl.mpl_figure_comm = function(comm, msg) {\n",
       "    // This is the function which gets called when the mpl process\n",
       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
       "\n",
       "    var id = msg.content.data.id;\n",
       "    // Get hold of the div created by the display call when the Comm\n",
       "    // socket was opened in Python.\n",
       "    var element = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\n",
       "\n",
       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
       "    // web socket which is closed, not our websocket->open comm proxy.\n",
       "    ws_proxy.onopen();\n",
       "\n",
       "    fig.parent_element = element.get(0);\n",
       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
       "    if (!fig.cell_info) {\n",
       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
       "        return;\n",
       "    }\n",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    fig.root.unbind('remove')\n",
       "\n",
       "    // Update the output cell to use the data from the current canvas.\n",
       "    fig.push_to_output();\n",
       "    var dataURL = fig.canvas.toDataURL();\n",
       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
       "    // the notebook keyboard shortcuts fail.\n",
       "    IPython.keyboard_manager.enable()\n",
       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n",
       "    fig.close_ws(fig, msg);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
       "    fig.send_message('closing', msg);\n",
       "    // fig.ws.close()\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
       "    // Turn the data on the canvas into data in the output cell.\n",
       "    var dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Tell IPython that the notebook contents must change.\n",
       "    IPython.notebook.set_dirty(true);\n",
       "    this.send_message(\"ack\", {});\n",
       "    var fig = this;\n",
       "    // Wait a second, then push the new image to the DOM so\n",
       "    // that it is saved nicely (might be nice to debounce this).\n",
       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items){\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
       "    buttongrp.append(button);\n",
       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
       "    titlebar.prepend(buttongrp);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(el){\n",
       "    var fig = this\n",
       "    el.on(\"remove\", function(){\n",
       "\tfig.close_ws(fig, {});\n",
       "    });\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
       "    // this is important to make the div 'focusable\n",
       "    el.attr('tabindex', 0)\n",
       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
       "    // off when our div gets focus\n",
       "\n",
       "    // location in version 3\n",
       "    if (IPython.notebook.keyboard_manager) {\n",
       "        IPython.notebook.keyboard_manager.register_events(el);\n",
       "    }\n",
       "    else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager)\n",
       "        manager = IPython.keyboard_manager;\n",
       "\n",
       "    // Check for shift+enter\n",
       "    if (event.shiftKey && event.which == 13) {\n",
       "        this.canvas_div.blur();\n",
       "        event.shiftKey = false;\n",
       "        // Send a \"J\" for go to next cell\n",
       "        event.which = 74;\n",
       "        event.keyCode = 74;\n",
       "        manager.command_mode();\n",
       "        manager.handle_keydown(event);\n",
       "    }\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    fig.ondownload(fig, null);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.find_output_cell = function(html_output) {\n",
       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
       "    // IPython event is triggered only after the cells have been serialised, which for\n",
       "    // our purposes (turning an active figure into a static one), is too late.\n",
       "    var cells = IPython.notebook.get_cells();\n",
       "    var ncells = cells.length;\n",
       "    for (var i=0; i<ncells; i++) {\n",
       "        var cell = cells[i];\n",
       "        if (cell.cell_type === 'code'){\n",
       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
       "                var data = cell.output_area.outputs[j];\n",
       "                if (data.data) {\n",
       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
       "                    data = data.data;\n",
       "                }\n",
       "                if (data['text/html'] == html_output) {\n",
       "                    return [cell, data, j];\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    }\n",
       "}\n",
       "\n",
       "// Register the function which deals with the matplotlib target/channel.\n",
       "// The kernel may be null if the page has been refreshed.\n",
       "if (IPython.notebook.kernel != null) {\n",
       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
2252
       "<img src=\"data:image/png;base64,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\">"
2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [