Skip to content

Instantly share code, notes, and snippets.

@heborras
Last active July 24, 2020 12:30
Show Gist options
  • Save heborras/cf6dcc2e18c36a093b88282833db306b to your computer and use it in GitHub Desktop.
Save heborras/cf6dcc2e18c36a093b88282833db306b to your computer and use it in GitHub Desktop.
Analysis of data posted by Quentin, in FINN Gitter
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"from glob import glob\n",
"import json"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# Get paths to json files\n",
"results_path = \"\"\n",
"\n",
"tested_networks = list(sorted(glob(results_path+\"A*\")))\n",
"ppr_json_paths = [glob(results_path+t_n+\"/*.json\")[0] for t_n in tested_networks]"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# Read json data\n",
"\n",
"result_dict = {}\n",
"\n",
"for i, ppr_json in enumerate(ppr_json_paths):\n",
" with open(ppr_json, 'r') as f:\n",
" res = json.load(f)\n",
" # Only extract the percentages and reformat as dictionary\n",
" for key in res.keys():\n",
" data_dict = {}\n",
" for data_point in res[key]:\n",
" # skip empty data points\n",
" if len(data_point) == 0:\n",
" continue\n",
" data_dict[data_point[0]] = data_point[-1]\n",
" res[key] = data_dict\n",
" \n",
" result_dict[tested_networks[i]] = res"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# Extract data for plotting\n",
"\n",
"keys_of_intrest = ['1. Slice Logic', '3. Memory']\n",
"\n",
"plotting_dataframes = {}\n",
"for key in keys_of_intrest:\n",
" plotting_dataframes[key] = pd.DataFrame(columns=list(result_dict[tested_networks[0]][key].keys()))\n",
" for net in tested_networks:\n",
" res = pd.DataFrame([list(result_dict[net][key].values())], columns=list(result_dict[net][key].keys()), index=[net])\n",
" plotting_dataframes[key] = plotting_dataframes[key].append(res)\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEZCAYAAADCJLEQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO2daZhU1dGA32KREQFRWcKmIAICgoCAbCKKKIsiiLhFBRcQxSVxxSVRE/3QaBJxRSMK0YgSd+MWhQjI4IYQNCABCQpCBAmKoiwD9f2o00PP3gPTc28P9T5PP33vufd217lbnVOnTpWoKo7jOI4TNypFLYDjOI7jFIYrKMdxHCeWuIJyHMdxYokrKMdxHCeWuIJyHMdxYokrKMdxHCeWpFVBiUhtEXlWRD4TkcUi0l1E9heRt0RkafjeL50yOI7jOJlJuntQE4A3VPVQ4HBgMTAOmK6qLYDpYd1xHMdx8iDpmqgrIrWAfwIHa9KfiMgSoI+qrhGRBsA7qtoqLUI4juM4GUuVNP72wcA64HERORyYB1wB1FfVNQBBSdUr6Yfq1KmjTZs2TaOojuM4TlTMmzfvG1Wtm788nQqqCtAJuExV3xeRCZTCnCcio4HRAAceeCAfffRReqR0HMdxIkVEviisPJ1jUKuAVar6flh/FlNYXwfTHuF7bWEHq+ojqtpZVTvXrVtAsTqO4zgVnLQpKFX9L7BSRBLjS32BRcDLwIhQNgJ4KV0yOI7jOJlLOk18AJcBfxGRvYDlwHmYUpwmIhcAXwLD0yyD4ziOk4GkVUGp6gKgcyGb+qbzfx3HcdLJtm3bWLVqFZs3b45alIwiKyuLxo0bU7Vq1ZT2T3cPynEcp8KxatUqatasSdOmTRGRqMXJCFSV9evXs2rVKpo1a5bSMR7qyHEcp5Rs3ryZAw44wJVTKRARDjjggFL1OitkD6rpuFfzrK/IOqvgTrd8V6Bo8aGtC5TN6PNAnvWxE4/dPeEcx6kQuHIqPaU9Z3tsD6rdlHYFPo7jOJnECy+8gIjw2Wef5Zb179+f2rVrc+KJJ+bZV1W58cYbadmyJa1bt+bee+9FValTpw4bNmwAYM2aNYgI7777bu5xdevWZf369cyaNYtOnTpRpUoVnn322Ty//eWXX3L88cfTunVr2rRpw4oVK8qkfhWyB+U4jlOe5Lfa7C4r7hiU0n5Tp06lV69ePP3009xyyy0AXHPNNfz44488/PDDefadPHkyK1eu5LPPPqNSpUqsXbsWEeHII49k7ty5DBw4kOzsbDp27Eh2dja9evViyZIl1KlThwMOOIADDzyQyZMnc/fddxeQ49xzz+XGG2+kX79+/PDDD1SqVDZ9nz22B+U4jpPJ/PDDD8yZM4dJkybx9NNP55b37duXmjVrFtj/oYce4te//nWu8qhXz6LM9ezZk+zsbACys7O58sormTt3bu56jx49AGjatCnt27cvoHwWLVpETk4O/fr1A6BGjRpUr169TOroCspxHCcDefHFF+nfvz8tW7Zk//335+OPPy52/88//5xnnnmGzp07M2DAAJYuXQpAjx49chXUBx98wJAhQ1i5ciVgCqpnz57F/u6///1vateuzSmnnELHjh255ppr2L59exnU0BWU4zhORjJ16lTOOOMMAM444wymTp1a7P5btmwhKyuLjz76iFGjRnH++ecD0LVrV+bPn8+mTZvYtm0bNWrU4OCDD2bZsmV5elBFkZOTw+zZs7n77rv58MMPWb58OZMnTy6TOvoYlOM4Toaxfv16ZsyYwaeffoqIsH37dkSE3/3ud0V6yjVu3Jhhw4YBMHToUM477zwAqlevziGHHMJjjz1Gp06dAOjWrRuvvfYaa9eupVWr4rMhNW7cmI4dO3LwwQcDMGTIEN577z0uuOCC3a6n96Acx3EyjGeffZZzzz2XL774ghUrVrBy5UqaNWuWx/suP0OGDGHGjBkAzJw5k5YtW+Zu69mzJ/fccw/du3cHoHv37kyYMIFu3bqV6BrepUsXNmzYwLp16wCYMWMGbdq02d0qAq6gHMdxMo6pU6cydOjQPGXDhg3jqaee4qijjmL48OFMnz6dxo0b8+abbwIwbtw4nnvuOdq1a8f111/Po48+mntsz549Wb58ea6C6tSpE6tWrcpj3vvwww9p3Lgxf/3rX7noooto27YtAJUrV+buu++mb9++tGvXDlVl1KhRZVJPN/E5juPsJqm6hZcV77zzToGyyy+/vNhjateuzauvFu4OP3z4cJKzq1erVo0tW7bk2adLly6sWrWq0OP79evHwoULS5C69HgPynEcx4klrqAcx3GcWOIKynEcx4klrqAcx3GcWOIKynEcx4klrqAcx3GcWOIKynEcJ0PJn25jwYIFdO/enbZt29K+fXueeeYZAF566SWGDBmSe9z48eM55JBDctdfeeUVBg8ezI8//sigQYM49NBDadu2LePGjSvfCuXD50HFjMLC9udPuNiu2YEF9pk2PqdAmSdbdJxy4pZ9y/j3CiZULYz86TaqV6/On//8Z1q0aMHq1as54ogjOOGEE+jRowejR4/OPW7u3LnUqlWLtWvXUq9evTxBYa+++mqOOeYYtm7dSt++fXn99dcZMGBA2dYvRbwH5TiOk4EUlm6jZcuWtGjRAoCGDRtSr1491q1bR926ddl3331ZtmwZAF999RXDhg3Lk2ajR48eVK9enWOOOQaAvfbaKzeiRFSkVUGJyAoR+UREFojIR6FsfxF5S0SWhu/90imD4zhORaSkdBsffPABW7dupXnz5sDOtBpLliyhRYsWdOvWjezsbHJycli4cCFdunTJc/y3337LK6+8Qt++fcutTvkpjx7UMaraQVU7h/VxwHRVbQFMD+uO4zhOKSgu3caaNWs455xzePzxx3MTDCYSE2ZnZ9O9e3e6du3K+++/z/z582nVqhVZWVm5x+fk5HDmmWdy+eWX50Ypj4IoxqBOBvqE5SnAO8B1EcjhOI6TkRSXbuP7779n0KBB3HbbbXTr1i33mB49enDfffexfft2Ro0aRc2aNdm8eTPvvPNOgaSEo0ePpkWLFvziF78o76rlId09KAX+LiLzRCQxQldfVdcAhO96aZbBcRynQlFUuo1Zs2YxdOhQzj33XIYPH57nmDZt2rB69Wpmz55Nx44dAejQoQMTJ07ME7X8pptu4rvvvuOee+4p1zoVRroVVE9V7QQMAMaKSO9UDxSR0SLykYh8lMgz4jiO4xSdbmPkyJHMmjWLyZMn06FDBzp06MCCBQsAEBGOPPJI6tSpQ9WqVQHL+7R8+fJcBbVq1Spuv/12Fi1aRKdOnejQoUOetBzlTVpNfKq6OnyvFZEXgK7A1yLSQFXXiEgDYG0Rxz4CPALQuXNnLWwfx3GcWJCiW3hZUVS6jZJSbuRPtzFy5EhGjhyZu964ceM8aTeiJm09KBHZR0RqJpaB44FPgZeBEWG3EcBL6ZLBcRzHyVzS2YOqD7wQ0gVXAZ5S1TdE5ENgmohcAHwJDC/mNxzHcZw9lLQpKFVdDhxeSPl6IDrHesdxHCcj8EgSjuM4TixxBeU4juPEEldQjuM4TixxBeU4jpOh5E+38cUXX3DEEUfQoUMH2rZty8SJE3P3/fnPf06rVq047LDDOP/889m2bRuqSp06ddiwYQNgIZJEhHfffTf3uLp167J+/XomTpxIu3bt6NChA7169WLRokVA0Sk+ygJPt+E4jrObtJvSrkx/75MRn6S0X/50Gw0aNCA7O5tq1arxww8/cNhhhzF48GAaNmzIz3/+c5588kkAzjrrLB599FEuvvhijjzySObOncvAgQPJzs6mY8eOZGdn06tXL5YsWUKdOnU44IADOOussxgzZgwAL7/8MldeeSVvvPFGkSk+ateuvdvnwXtQjuM4GUhh6Tb22msvqlWrBsCWLVvYsWNH7v4DBw5ERBARunbtmptGIxFEFiztxpVXXsncuXNz1xNRJmrVqpX7W5s2bSJMISoyxUdZ4ArKcRwnAykq3cbKlStp3749TZo04brrrqNhw4Z5jtu2bRtPPPEE/fv3B3am4QBL0TFkyBBWrlwJkCeRIcADDzxA8+bNufbaa7n33nsLyJQ/xcfu4grKcRwnAykq3UaTJk1YuHAhy5YtY8qUKXz99dd5jrvkkkvo3bs3Rx11FABdu3Zl/vz5bNq0iW3btlGjRg0OPvhgli1blqcHBTB27Fg+//xz7rzzTm677bY8v1tYio/dxcegHMdxMozi0m0kTG8NGzakbdu2zJ49m1NPPRWAW2+9lXXr1vHwww/n/lb16tU55JBDeOyxx+jUqRMA3bp147XXXmPt2rW0atWqwP+fccYZXHzxxbnrGzduLDTFx+7iPSjHcZwMo6h0G++++y4//fQTABs2bGDOnDm5CubRRx/lzTffZOrUqQV6OD179uSee+6he/fugEU5nzBhAt26dctVeEuXLs3d/9VXX80dd9q6dWuRKT52F+9BOY7jZBhTp05l3Li8yciHDRvG6NGjqVq1KiKCqnL11VfTrp15GI4ZM4aDDjooVwmdcsop/PrXvwZMQU2YMCF3W6dOnVi1ahUXXnhh7u/ff//9vP3221StWpX99tuPKVOmADBt2jRmzZrF+vXrmTx5MkBuuo/dxRWU4zjObpKqW3hZsSvpNnJycorcNnz48DxpNqpVq8aWLVvy7DNhwoRCjz377LM5++yzS5B413ATn+M4jhNLXEE5juM4scQVlOM4jhNLXEE5juM4scQVlOM4jhNL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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXhU9dn/8fdHiFJ+gAtGhSKiiCitCxaQRa3KQ8WtBVGr1SJ9qoi7daXWVm21ULUqdS2Kgrai1hXXVosiiqIoFBeggEWJ8AClKKKCBO7fH+ckDSEhk5DJTJLP67pyJefMOTP3GMk93/VWRGBmZpZvtsh1AGZmZhVxgjIzs7zkBGVmZnnJCcrMzPKSE5SZmeWlprkOIBPbb799dOjQIddhmJlZFrz99tv/jojC8ufrRYLq0KED06ZNy3UYZmaWBZI+qui8u/jMzCwvOUGZmVleylqCktRM0puS/iHpfUlXp+e3k/SCpLnp922zFYOZmdVf2RyDWgMcFhGrJBUAr0p6DjgW+HtEjJQ0HBgOXJbFOMzMatXatWspKipi9erVuQ6lXmnWrBnt2rWjoKAgo+uzlqAi2eRvVXpYkH4F8APgkPT8OOBlnKDMrB4pKiqiZcuWdOjQAUm5DqdeiAiWL19OUVERu+66a0b3ZHUMSlITSTOApcALETEV2DEiFgOk33fIZgxmZrVt9erVtG7d2smpGiTRunXrarU6s5qgImJdROwHtAN6SPp2pvdKGippmqRpy5Yty16QZmY14ORUfdX9b1Yns/gi4lOSrrz+wBJJbQDS70sruWd0RHSLiG6FhRut3zIzswYua2NQkgqBtRHxqaRvAP8D/A6YAJwKjEy/P5mtGGpDh+HPVPueBc1+VK3r9961fbVf4+ERxdW+Z+Iht1Xr+rPvPKzar2HWGNXk78SmLBh5VEbXPf744xx77LHMmjWLPffcE4D+/fvzxhtvcOCBB/L000+XXhsRXHHFFfzlL3+hSZMmnHnmmZx77rkUFhYyd+5ctt12WxYvXkzbtm2ZPHkyBx54IACFhYXMnj2b999/nwsuuICZM2fy4IMPctxxx5U+98cff8xpp53GwoULkcSzzz5Lbez+k80WVBvgJUkzgbdIxqCeJklM/STNBfqlx2ZmVk3jx4/nwAMP5MEHHyw9d8kll3D//fdvdO3YsWNZuHAhs2fPZtasWZx44olI4oADDuD1118HYMqUKXTt2pUpU6YAMGfOHLbffntat25N+/btGTt2LD/60cYfwAcPHswll1zCrFmzePPNN9lhh9qZWpC1BBURMyOia0TsExHfjohfp+eXR0TfiOiUfv9PtmIwM2uoVq1axWuvvcaYMWM2SFB9+/alZcuWG11/xx138Ktf/Yottkj+7JckkT59+pQmpClTpnDhhRdukLB69+4NJFvO7bPPPqX3l/jggw8oLi6mX79+ALRo0YLmzZvXynv0ThJmZvXQE088Qf/+/dljjz3YbrvteOeddzZ5/fz583nooYfo1q0bRxxxBHPnzgWgd+/epQnqzTffZMCAASxcuBBIElSfPn02+bz//Oc/2WabbTj22GPp2rUrl1xyCevWrauFd+gEZWZWL40fP54TTzwRgBNPPJHx48dv8vo1a9bQrFkzpk2bxumnn87//u//AtCjRw+mT5/OF198wdq1a2nRogW77bYb8+bN26AFVZni4mImT57MDTfcwFtvvcWHH37I2LFja+U91ovdzM3M7L+WL1/OxIkTee+995DEunXrkMR1111X6VTudu3aMWjQIAAGDhzIT37yEwCaN2/O7rvvzj333MP+++8PQM+ePXn22WdZunQpnTt33mQs7dq1o2vXruy2224ADBgwgDfeeIOf/vSnm/0+3YIyM6tnHnnkEQYPHsxHH33EggULWLhwIbvuuiuvvvpqpfcMGDCAiRMnAjBp0iT22GOP0sf69OnDzTffTK9evQDo1asXo0aNomfPnlWuXerevTsrVqygZL3qxIkT6dKly+a+RcAtKLMKVXfacHWXFkDdLC+o7tIC8PKCmsh0WnhtGT9+PMOHD9/g3KBBg3jggQe4/PLLmT17NqtWraJdu3aMGTOGww8/nOHDh3PyySdz00030aJFC+6+++7Se/v06cOoUaNKE9T+++9PUVERp512Wuk1b731FgMHDmTFihU89dRTXHnllbz//vs0adKEG264gb59+xIRfOc73+H000+vlffpBGVmVs+8/PLLG50777zzNnnPNttswzPPVPzB6/jjjyfZPjWx1VZbsWbNmg2u6d69O0VFRRXe369fP2bOnFlF1NXnLj4zM8tLTlBmZpaXnKDMzCwvOUGZmVlecoIyM7O85ARlZmZ5ydPMzcw211Vb1/LzfZbRZeXLbcyYMYMzzzyTlStX0qRJE37xi1/wwx/+kCeffJJ7772XJ554AoARI0YwZswY5s2bB8BTTz3FXXfdxYMPPsjxxx/P/PnzadKkCccccwwjR+au4IRbUGZm9VT5chvNmzfnvvvu4/333+f555/nggsu4NNPP6V3796lO5QDvP7667Rq1YqlS5N6sWU3hb344ouZPXs206dP57XXXuO5556r+zeWcoIyM6uHKiq3sccee9CpUycA2rZtyw477MCyZcsoLCxk6623Lm0xffLJJwwaNGiDMhu9e/emefPmHHrooQBsueWWpTtK5IoTlJlZPVRVuY0333yTr7/+mo4dOwL/LasxZ84cOnXqRM+ePZkyZQrFxcXMnDmT7t27b3D/p59+ylNPPUXfvn3r7D2V5wRlZlYPbarcxuLFi/nxj3/MvffeW1pgsKQw4ZQpU+jVqxc9evRg6tSpTJ8+nc6dO9OsWbPS+4uLiznppJM477zzSncpzwVPkjAzq2c2VW7j888/56ijjuKaa66hZ8+epff07t2bW265hXXr1nH66afTsmVLVq9ezcsvv7xRUcKhQ4fSqVMnLrjggrp+axtwC8rMrJ6prNzGK6+8wsCBAxk8eDDHH3/8Bvd06dKFRYsWMXnyZLp27QrAfvvtx5133rlBUcIrrriCzz77jJtvvrlO31NF3IIyM9tcGU4Lry2VldsYMmQIRUVFLF++vLSq7dixY9lvv/2QxAEHHMBnn31GQUEBkNR9Gj16dGmCKioq4tprr2XPPfcsLV54zjnnbFB2oy45QZmZ1TOVlduoquRG+XIbQ4YMYciQIaXH7dq126DsRq65i8/MzPKSE5SZmeUlJygzM8tLWUtQknaW9JKkWZLel3R+ev4qSZ9ImpF+HZmtGMzMrP7K5iSJYuCiiHhHUkvgbUkvpI/dFBE3ZPG1zcysnstagoqIxcDi9OfPJc0Cvpmt1zMzs4alTqaZS+oAdAWmAn2AcyQNBqaRtLJWVHDPUGAoQPv27esiTDOzGtl73N61+nzvnvpuRteVL7fx0Ucfceyxx7Ju3TrWrl3Lueeey7BhwwA4+eSTmTZtGgUFBfTo0YM//vGPNG3alMLCQubOncu2227L4sWLadu2LZMnT+bAAw8EoLCwkNmzZ/OXv/yF2267jSZNmtCiRQtGjx5Nly5dKi3xURuyPklCUgvgUeCCiFgJ3AF0BPYjaWH9vqL7ImJ0RHSLiG6FhYXZDtPMrN4pX26jTZs2TJkyhRkzZjB16lRGjhzJokWLgCRBzZ49m3fffZevvvqKu+++u3TxbkkpjilTptC1a9fSXc7nzJnD9ttvT+vWrfnRj37Eu+++y4wZM7j00ku58MILgcpLfNSGrCYoSQUkyenPEfEYQEQsiYh1EbEeuAvokc0YzMwaoorKbWy55ZZstdVWAKxZs4b169eXXn/kkUciCUn06NGjtIxGySaykCSoCy+8cIOEVbLLRKtWrUqf64svvkASUHmJj9qQzVl8AsYAsyLixjLn25S5bCDwXrZiMDNrqCort7Fw4UL22Wcfdt55Zy677DLatm27wX1r167l/vvvp3///sB/y3BAUqJjwIABLFy4ENiwkCHAbbfdRseOHbn00kv5wx/+sFFM5Ut8bK5stqD6AD8GDis3pfw6Se9KmgkcCvwsizGYmTVIlZXb2HnnnZk5cybz5s1j3LhxLFmyZIP7zjrrLA4++GAOOuggAHr06MH06dP54osvWLt2LS1atGC33XZj3rx5G7SgAM4++2zmz5/P7373O6655poNnreiEh+bK5uz+F4FVMFDz2brNc3MGoNNldso6Xpr27Yt3/rWt5g8eTLHHXccAFdffTXLli3jj3/8Y+lzNW/enN1335177rmndIPYnj178uyzz7J06VI6d+680eufeOKJnHnmmaXHK1eurLDEx+byThJmZvVMZeU2Xn31Vb766isAVqxYwWuvvVaaYO6++27++te/Mn78+I1aOH369OHmm2+mV69eQLLL+ahRo+jZs2dpwps7d27p9c8880zpuNPXX39daYmPzeXdzM3MNlOm08JrS2XlNoYOHUpBQQGSiAguvvhi9t47mQI/bNgwdtlll9IkdOyxx/KrX/0KSBLUqFGjSh/bf//9KSoq2qDMxq233sqLL75IQUEB2267LePGjQPg4Ycf5pVXXqmwxMfmcoIyM6tnalJuo7i4uNLHjj/++A3KbGy11VasWbNmg2tGjRpV4b2nnHIKp5xyShUR14y7+MzMLC85QZmZWV5ygjIzs7zkBGVmZnnJCcrMzPKSE5SZmeUlTzM3M9tMs/bcq1afb6/ZszK6rny5jRIrV65kr732YuDAgdx66608+eST3HvvvTzxxBMAjBgxgjFj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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Plot data\n",
"\n",
"for key in keys_of_intrest:\n",
" plotting_dataframes[key].T.plot.bar(rot=45)\n",
" plt.ylabel(\"Utilization [%]\")\n",
" plt.tight_layout()\n",
" plt.savefig(key+\".png\", dpi=400)\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:py37]",
"language": "python",
"name": "conda-env-py37-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment