summaryrefslogtreecommitdiff
path: root/notebooks/plot_stochastic.ipynb
diff options
context:
space:
mode:
authorRémi Flamary <remi.flamary@gmail.com>2019-03-15 11:56:42 +0100
committerRémi Flamary <remi.flamary@gmail.com>2019-03-15 11:56:42 +0100
commit325f02ccdb2718d84283076bebb7c6a2f1e99e52 (patch)
treee818e5a20428f66fe6f840a2fbe7d8c2a73d4675 /notebooks/plot_stochastic.ipynb
parent9cd97796797b9b2853c6458a7f4e9347bb212978 (diff)
update notebooks
Diffstat (limited to 'notebooks/plot_stochastic.ipynb')
-rw-r--r--notebooks/plot_stochastic.ipynb149
1 files changed, 51 insertions, 98 deletions
diff --git a/notebooks/plot_stochastic.ipynb b/notebooks/plot_stochastic.ipynb
index e784e11..0911c28 100644
--- a/notebooks/plot_stochastic.ipynb
+++ b/notebooks/plot_stochastic.ipynb
@@ -49,44 +49,20 @@
"source": [
"COMPUTE TRANSPORTATION MATRIX FOR SEMI-DUAL PROBLEM\n",
"############################################################################\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "------------SEMI-DUAL PROBLEM------------\n"
- ]
- }
- ],
- "source": [
- "print(\"------------SEMI-DUAL PROBLEM------------\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "DISCRETE CASE\n",
- "Sample two discrete measures for the discrete case\n",
- "---------------------------------------------\n",
+ "############################################################################\n",
+ " DISCRETE CASE:\n",
+ "\n",
+ " Sample two discrete measures for the discrete case\n",
+ " ---------------------------------------------\n",
"\n",
- "Define 2 discrete measures a and b, the points where are defined the source\n",
- "and the target measures and finally the cost matrix c.\n",
+ " Define 2 discrete measures a and b, the points where are defined the source\n",
+ " and the target measures and finally the cost matrix c.\n",
"\n"
]
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 3,
"metadata": {
"collapsed": false
},
@@ -120,7 +96,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 4,
"metadata": {
"collapsed": false
},
@@ -150,7 +126,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "SEMICONTINOUS CASE\n",
+ "SEMICONTINOUS CASE:\n",
+ "\n",
"Sample one general measure a, one discrete measures b for the semicontinous\n",
"case\n",
"---------------------------------------------\n",
@@ -162,7 +139,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 5,
"metadata": {
"collapsed": false
},
@@ -198,7 +175,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 6,
"metadata": {
"collapsed": false
},
@@ -207,15 +184,15 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "[3.75309361 7.63288278 3.76418767 2.53747778 1.70389504 3.53981297\n",
- " 2.67663944] [-2.49164966 -2.25281897 -0.77666675 5.52113539]\n",
- "[[2.19699465e-02 1.03185982e-01 1.76983379e-02 2.87611188e-06]\n",
- " [1.20688044e-01 1.49823131e-02 1.50635578e-03 5.68043045e-03]\n",
- " [3.01194583e-03 7.75764779e-02 6.22686313e-02 8.78225379e-08]\n",
- " [2.28707628e-02 3.52120795e-02 8.44977549e-02 2.76545693e-04]\n",
- " [1.19721129e-02 1.10087991e-03 1.53333937e-02 1.14450756e-01]\n",
- " [2.65247890e-02 1.33140544e-03 2.66861405e-03 1.12332334e-01]\n",
- " [3.71512413e-02 2.86513804e-02 7.53932500e-02 1.66127118e-03]]\n"
+ "[3.88833283 7.64041833 3.93000933 2.68489048 1.42837354 3.25840738\n",
+ " 2.80033951] [-2.50038759 -2.4083026 -0.96389053 5.87258072]\n",
+ "[[2.49326139e-02 1.01118047e-01 1.68018025e-02 4.67918477e-06]\n",
+ " [1.20543018e-01 1.29218840e-02 1.25860644e-03 8.13363473e-03]\n",
+ " [3.52425849e-03 7.83826265e-02 6.09501106e-02 1.47316769e-07]\n",
+ " [2.62727985e-02 3.49290291e-02 8.11998888e-02 4.55426386e-04]\n",
+ " [9.00986942e-03 7.15412954e-04 9.65318348e-03 1.23478677e-01]\n",
+ " [1.98446848e-02 8.60145164e-04 1.67017745e-03 1.20482135e-01]\n",
+ " [4.16774129e-02 2.77550575e-02 7.07529364e-02 2.67173611e-03]]\n"
]
}
],
@@ -240,7 +217,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 7,
"metadata": {
"collapsed": false
},
@@ -284,7 +261,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 8,
"metadata": {
"collapsed": false
},
@@ -317,14 +294,14 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "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\n",
"text/plain": [
"<Figure size 360x360 with 3 Axes>"
]
@@ -350,7 +327,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 10,
"metadata": {
"collapsed": false
},
@@ -378,45 +355,21 @@
"source": [
"COMPUTE TRANSPORTATION MATRIX FOR DUAL PROBLEM\n",
"############################################################################\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "------------DUAL PROBLEM------------\n"
- ]
- }
- ],
- "source": [
- "print(\"------------DUAL PROBLEM------------\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "SEMICONTINOUS CASE\n",
- "Sample one general measure a, one discrete measures b for the semicontinous\n",
- "case\n",
- "---------------------------------------------\n",
+ "############################################################################\n",
+ " SEMICONTINOUS CASE:\n",
"\n",
- "Define one general measure a, one discrete measures b, the points where\n",
- "are defined the source and the target measures and finally the cost matrix c.\n",
+ " Sample one general measure a, one discrete measures b for the semicontinous\n",
+ " case\n",
+ " ---------------------------------------------\n",
+ "\n",
+ " Define one general measure a, one discrete measures b, the points where\n",
+ " are defined the source and the target measures and finally the cost matrix c.\n",
"\n"
]
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 11,
"metadata": {
"collapsed": false
},
@@ -453,7 +406,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 12,
"metadata": {
"collapsed": false
},
@@ -462,15 +415,15 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "[ 1.67648902 5.3770004 1.70385554 0.4276547 -0.77206786 1.0474898\n",
- " 0.54202203] [-0.23723788 -0.20259434 1.30855788 8.06179985]\n",
- "[[2.62451875e-02 1.00499531e-01 1.78515577e-02 4.57450829e-06]\n",
- " [1.20510690e-01 1.21972758e-02 1.27002374e-03 7.55197481e-03]\n",
- " [3.65708350e-03 7.67963231e-02 6.38381061e-02 1.41974930e-07]\n",
- " [2.64286344e-02 3.31748063e-02 8.24445965e-02 4.25479786e-04]\n",
- " [9.59295422e-03 7.19190875e-04 1.03739180e-02 1.22100712e-01]\n",
- " [2.09087627e-02 8.55676046e-04 1.77617241e-03 1.17896019e-01]\n",
- " [4.18792948e-02 2.63326297e-02 7.17598381e-02 2.49335733e-03]]\n"
+ "[0.92524245 2.75994495 1.08144666 0.02747421 0.60913832 1.8156535\n",
+ " 0.11738177] [0.33905828 0.46705197 1.56941919 4.96075241]\n",
+ "[[2.20327995e-02 9.26244184e-02 1.09321230e-02 9.71212784e-08]\n",
+ " [1.56579562e-02 1.73985799e-03 1.20373178e-04 2.48153271e-05]\n",
+ " [3.49227454e-03 8.05110304e-02 4.44694627e-02 3.42874458e-09]\n",
+ " [3.15181548e-02 4.34346087e-02 7.17227024e-02 1.28326090e-05]\n",
+ " [6.79336320e-02 5.59136813e-03 5.35899879e-02 2.18675752e-02]\n",
+ " [8.02083959e-02 3.60364770e-03 4.97032746e-03 1.14377502e-02]\n",
+ " [4.87374362e-02 3.36433325e-02 6.09190548e-02 7.33833971e-05]]\n"
]
}
],
@@ -495,7 +448,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 13,
"metadata": {
"collapsed": false
},
@@ -530,14 +483,14 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAAFgCAYAAACFYaNMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAEgBJREFUeJzt3X2QXQV9xvHnaQhFAWHarBaT0KUjg0U6BLtiLKII1QFx1No3rdBibTMWqTB16mg7Ktp2OjojpvW1KSK2oIiiHccqBSGMhSK4gYDyphZfEhKbjZSaIAoJT/+4J51tTHZPNufe3+6938/MTvbec+49v7OZfPfk3DcnEQBg8H6megAAGFUEGACKEGAAKEKAAaAIAQaAIgQYAIoQYCxoti+1/dcd3M+47dg+oIu5FiLbr7Z9TfUco4QAAx1wz5/b/qbtR2x/z/bf2v7ZZvkXbW9vvh6z/ei0yx/u82ytfrkkuTzJi+a4jZfZXm/7h7a32r7e9lHTlh9t+wrbU80637T9PtvLmuWn2H582s9ko+0rbT9rLvMsFAQY6MbfS1ol6fclHSrpDEmnSbpSkpKckeSQJIdIulzSu3ddTvK6qqF32Z8jf9tPk/RPkt4o6TBJR0n6gKSd05bfImmTpBOSPEnSSZL+U9Jzp93Vpubnc6iklZLulfTvtk+b62zzHQHGgmL7BNu32d5m+5OSDpq27BzbN+62fpoAyPaZtm9vjsA22L6wo5mOlnSupFcnuTnJjiR3SfpNSafbPnUO93mO7Ztsv9f2Q7bvt/1rzfUbbG+x/QfT1p9p377c/PlQc3T5nN3u/weSLpz+82u2tdX28uby8bb/2/bT9zDuCknfTnJderYluSrJ95rlF0q6KcmfJdkoSUm2JFmd5Ird76y5j41J3ibpYknv2tef30JBgLFg2D5Q0r9I+mdJPyfpU+pFrq2H1TtCPVzSmZL+xPbLW277g7Y/uJfFp0namOTW6Vcm2SDpK5JeuA8zTvdsSXdK+nlJH5d0haRnSXqapLMkvd/2Ic26M+3b85o/D2+OuG+edv/3S3qKpL/Zbfb/kPQPkj5m+wmSLpP01iT37mHO2yQ9vYn5C6bNtMuvS7pqn/e+5zOSnmn74Dnefl4jwFhIVkpaLGl1kseSfFrSV9veOMkNSb6W5PEkd0r6hKTnt7ztuUnO3cviJZI272XZ5mb5XHw7yUeT7JT0SUnLJb0zyU+SXCPpUfViPNd925Tkfc0R+yN7WH6heqcUbpX0gHqnFX5KkvslnSJpqXqnXLY2D47uCvESSd/ftb7t85qj+u22/3G2GSVZvV8sQ4cAYyF5qqQH8v/fQeq7bW9s+9m21zYPBP2PpNdp7nGcbqukI/ay7Ihm+Vz817TvH5GkJLtfd4g0533bMNPCJI9JulTScZLes9vPffd1v5Lkd5KMSTpZvaPuv2wW/0DTfj5J3p/kcEmr1fuFOpOlkiLpoVnWW5AIMBaSzZKW2va0646c9v3Dkp6464LtX9jt9h+X9DlJy5McJunD6h1d7a/rJS23feL0K5vzpyslXdfBNmYz077tLZwzvhWi7aWS3i7po5Les+sZHbNJ8lX1Th0c11x1naRXtLntHvyGpNuSPDzH289rBBgLyc2Sdkh6g+3Ftl8haXr07pD0DNsrbB+k3n+hpztU0oNJftzE8ve6GCrJN9QL3uW2V9peZPsZ6p33/FKSL3WxnVnMtG9Tkh6X9Ett76z5JXeppI9Ieq16v/z+ai/rPtf2H9t+cnP56ZJeqt75b6n393Cy7YuaqMv2Ekm/vLdt215q++2S/kjSX7Sde6EhwFgwkjyq3pHUOZIelPS76h1p7Vr+DUnvlPQlSd+UdONud3GupHfa3ibpbWqeItaG7Q975ufrnqfeI/aXSdou6WpJN2jfHiTcH3vdtyQ/Uu9Btpuac68rW9zfGyQ9Wb0H3iLpNZJeY/vkPaz7kHrB/ZrtXfv+WUnvbrb/DfUe8Fsm6Y5mxpvUO7/71mn389Tm9tvVO7f/K5JOac53DyXzhuwAUIMjYAAoQoABoAgBBoAiBBgAiozsW++hZ8mSJRkfH68eAxgq69at29q8KGVGBHjEjY+Pa3JysnoMYKjYbvUKTU5BAEARAgwARQgwABQhwABQhAADQBECDABFCDAAFCHAAFCEAANAEQIMAEUIMAAUIcAAUIQAA0ARAgwARQgwABQhwABQhAADQBECDABFCDAAFCHAAFCEAANAEQIMAEUIMAAUIcAAUIQAA0ARAgwARQgwABQhwABQhAADQBECDABFCDAAFCHAAFCEAANAEQIMAEUIMAAUIcAAUIQAA0ARAgwARQgwABQhwABQhAADQBECDABFDqgeAMXuu0865ZTqKTDKVqyQVq+unqIER8AAUIQj4FF3zDHSDTdUTwGMJI6AAaAIAQaAIgQYAIoQYAAoQoABoAgBBoAiBBgAihBgAChCgAGgCAEGgCIEGACKEGAAKEKAAaAIAQaAIgQYAIoQYAAoQoABoAgBBoAiBBgAihBgAChCgAGgCAEGgCIEGACKEGAAKEKAAaAIAQaAIgQYAIoQYAAoQoABoAgBBoAiBBgAihBgAChCgAGgCAEGgCIEGACKEGAAKEKAAaAIAQaAIgQYAIoQYAAoQoABoAgBBoAiBBgAijhJ9QwoZHubpPuq5+jYEklbq4foA/Zr4TgmyaGzrXTAICbBvHZfkonqIbpke3LY9klivxYS25Nt1uMUBAAUIcAAUIQAY031AH0wjPsksV8LSat94kE4ACjCETAAFCHAAFCEAI8o26fbvs/2t2y/uXqeLti+xPYW21+vnqUrtpfbXmv7btt32T6/eqYu2D7I9q2272j26x3VM3XF9iLbt9v+/GzrEuARZHuRpA9IOkPSsZJeZfvY2qk6camk06uH6NgOSW9McqyklZJePyR/Vz+RdGqS4yWtkHS67ZXFM3XlfEn3tFmRAI+mEyV9K8n9SR6VdIWklxXPtN+SfFnSg9VzdCnJ5iS3Nd9vU+8f9tLaqfZferY3Fxc3Xwv+GQG2l0k6U9LFbdYnwKNpqaQN0y5v1BD8ox52tsclnSDpltpJutH8V329pC2Srk0yDPu1WtKbJD3eZmUCDCwAtg+RdJWkC5L8sHqeLiTZmWSFpGWSTrR9XPVM+8P2SyRtSbKu7W0I8Gh6QNLyaZeXNddhHrK9WL34Xp7kM9XzdC3JQ5LWauGfvz9J0kttf0e903qn2r5sphsQ4NH0VUlH2z7K9oGSXinpc8UzYQ9sW9JHJN2T5KLqebpie8z24c33T5D0Qkn31k61f5K8JcmyJOPq/Zu6PslZM92GAI+gJDsknSfp39R7UOfKJHfVTrX/bH9C0s2SjrG90fZrq2fqwEmSzlbvaGp98/Xi6qE6cISktbbvVO+A4Noksz5ta9jwUmQAKMIRMAAU6csbsi9ZsiTj4+P9uGt0bN26dVuTjFXPsb+ef8a75vRfuRe/Z23Xo8zourMH/1qD3D7Ys0vXPv4pD3SDC1hfAjw+Pq7JyVZvCI9itr9bPQMwqjgFAQBFCDAAFCHAAFCEAANAEQIMAEUIMAAUIcAAUIQAA0ARAgwARVoFeBg/wBEAqs0a4CH+AEcAKNXmCHgoP8BxX1xwQe8LALrU5s149vQBjs/efSXbqyStkqQjjzyyk+Hmi/XrqycAMIw6exAuyZokE0kmxsYW/LsbAkDftQkwH+AIAH3QJsB8gCMA9MGs54CT7LC96wMcF0m6ZBg+wBEAqrX6RIwkX5D0hT7PAgAjhVfCAUARAgwARQgwABQhwABQhAADQBECDABFCDAAFCHAAFCk1QsxgPnu6ks+NKfbveLk3+54kpnlO/cOdHuStIg3x5q3OAIGgCIEGACKEGAAKEKAAaAIAQaAIgQYAIoQYAAoQoABoAgBBoAiBBgAiswaYNuX2N5i++uDGAgARkWbI+BLJZ3e5zkAYOTMGuAkX5b04ABmAYCRwjlgACjSWYBtr7I9aXtyamqqq7sFgKHVWYCTrEkykWRijPcfBYBZcQoCAIq0eRraJyTdLOkY2xttv7b/YwHA8Jv1I4mSvGoQgwDAqOEUBAAUIcAAUIQAA0ARAgwARQgwABQhwABQhAADQBECDABFCDAAFJn1lXDAQvDyo58/p9ttuOzgjieZ2Y82TQx0e5J09Hm3DHybaIcjYAAoQoABoAgBBoAiBBgAihBgAChCgAGgCAEGgCIEGACKEGAAKEKAAaBIm09FXm57re27bd9l+/xBDAYAw67Ne0HskPTGJLfZPlTSOtvXJrm7z7MBwFCb9Qg4yeYktzXfb5N0j6Sl/R4MAIbdPp0Dtj0u6QRJP/X2SrZX2Z60PTk1NdXNdAAwxFoH2PYhkq6SdEGSH+6+PMmaJBNJJsbGxrqcEQCGUqsA216sXnwvT/KZ/o4EAKOhzbMgLOkjku5JclH/RwKA0dDmCPgkSWdLOtX2+ubrxX2eCwCG3qxPQ0tyoyQPYBYAGCm8Eg4AihBgAChCgAGgCAEGgCIEGACKEGAAKEKAAaAIAQaAIm3eDxiY93588rFzut1hVwz2n8Bhf7hloNvD/MYRMAAUIcAAUIQAA0ARAgwARQgwABQhwABQhAADQBECDABFCDAAFCHAAFCkzaciH2T7Vtt32L7L9jsGMRgADLs2L4T/iaRTk2y3vVjSjba/mOQrfZ4NAIZam09FjqTtzcXFzVf6ORQAjIJW54BtL7K9XtIWSdcmuWUP66yyPWl7cmpqqus5AWDotApwkp1JVkhaJulE28ftYZ01SSaSTIyNjXU9JwAMnX16FkSShyStlXR6f8YBgNHR5lkQY7YPb75/gqQXSrq334MBwLBr8yyIIyR9zPYi9YJ9ZZLP93csABh+bZ4FcaekEwYwCwCMFF4JBwBFCDAAFCHAAFCEAANAEQIMAEUIMAAUIcAAUIQAA0CRNq+EA+a9J961eU63O/CBTR1PMrMDbl460O1J0r9uWj/wbaIdjoABoAgBBoAiBBgAihBgAChCgAGgCAEGgCIEGACKEGAAKEKAAaAIAQaAIq0DbHuR7dtt84GcANCBfTkCPl/SPf0aBABGTasA214m6UxJF/d3HAAYHW2PgFdLepOkx/e2gu1VtidtT05NTXUyHAAMs1kDbPslkrYkWTfTeknWJJlIMjE2NtbZgAAwrNocAZ8k6aW2vyPpCkmn2r6sr1MBwAiYNcBJ3pJkWZJxSa+UdH2Ss/o+GQAMOZ4HDABF9ukjiZLcIOmGvkwCACOGI2AAKEKAAaAIAQaAIgQYAIoQYAAoQoABoAgBBoAiBBgAiuzTCzGA+eqx5UvmdDs/sKnjSWa2c/P3B7o9Sdq68+GBbu/JA93awsYRMAAUIcAAUIQAA0ARAgwARQgwABQhwABQhAADQBECDABFCDAAFCHAAFCk1UuRm4+k3yZpp6QdSSb6ORQAjIJ9eS+IFyTZ2rdJAGDEcAoCAIq0DXAkXWN7ne1Ve1rB9irbk7Ynp6amupsQAIZU2wA/N8kzJZ0h6fW2n7f7CknWJJlIMjE2NtbpkAAwjFoFOMkDzZ9bJH1W0on9HAoARsGsAbZ9sO1Dd30v6UWSvt7vwQBg2LV5FsRTJH3W9q71P57k6r5OBQAjYNYAJ7lf0vEDmAUARgpPQwOAIgQYAIoQYAAoQoABoAgBBoAiBBgAihBgAChCgAGgCAEGgCL78obswLy19fgnzul2hz3pVzueZGbfO3vnQLcnSWc9bdFAt3fNIwPd3ILGETAAFCHAAFCEAANAEQIMAEUIMAAUIcAAUIQAA0ARAgwARQgwABRpFWDbh9v+tO17bd9j+zn9HgwAhl3blyL/naSrk/yW7QMlze11nwCA/zNrgG0fJul5ks6RpCSPSnq0v2MBwPBrcwriKElTkj5q+3bbF9s+uM9zAcDQaxPgAyQ9U9KHkpwg6WFJb959JdurbE/anpyamup4zForVvS+AKBLbc4Bb5S0McktzeVPaw8BTrJG0hpJmpiYSGcTzgOrV1dPAGAYzXoEnOT7kjbYPqa56jRJd/d1KgAYAW2fBfGnki5vngFxv6TX9G8kABgNrQKcZL2kiT7PAgAjhVfCAUARAgwARQgwABQhwABQhAADQBECDABFCDAAFCHAAFCEAANAESfdv2+O7SlJ3+38jtEPv5hkrHoIYBT1JcAAgNlxCgIAihBgAChCgAGgCAEGgCIEGACKEGAAKEKAAaAIAQaAIgQYAIoQYAAoQoABoAgBBoAiBBgAihBgAChCgAGgCAEGgCIEGACKEGAAKEKAAaAIAQaAIgQYAIoQYAAo8r9wCGj9yW4UbQAAAABJRU5ErkJggg==\n",
+ "image/png": "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\n",
"text/plain": [
"<Figure size 360x360 with 3 Axes>"
]
@@ -563,7 +516,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 15,
"metadata": {
"collapsed": false
},
@@ -602,7 +555,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.6.5"
+ "version": "3.6.7"
}
},
"nbformat": 4,