Skip to content
Snippets Groups Projects
Plots-checkpoint.ipynb 1.22 MiB
Newer Older
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 170,
   "id": "b2fdbe8a-6210-4dd0-9c3f-92d40b7d330b",
   "metadata": {},
   "outputs": [],
   "source": [
    "import duckdb\n",
    "\n",
    "db = duckdb.connect(\"agg.db\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "id": "c6b5a875-4e6a-402b-94ad-e560533ec44a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      compiler  query  partition  duration unit  bench  iter_number  \\\n",
      "0            3      4          2  5.367870   ns      3            0   \n",
      "1            3      4          2  5.483773   ns      3            1   \n",
      "2            3      4          2  5.271529   ns      3            2   \n",
      "3            3      4          2  5.397912   ns      3            3   \n",
      "4            3      4          2  5.521134   ns      3            4   \n",
      "...        ...    ...        ...       ...  ...    ...          ...   \n",
      "3995         3      3          3  6.154460   ns      3           95   \n",
      "3996         3      3          3  6.286358   ns      3           96   \n",
      "3997         3      3          3  6.220507   ns      3           97   \n",
      "3998         3      3          3  6.144119   ns      3           98   \n",
      "3999         3      3          3  6.150991   ns      3           99   \n",
      "\n",
      "      iter_count  \n",
      "0              2  \n",
      "1              2  \n",
      "2              2  \n",
      "3              2  \n",
      "4              2  \n",
      "...          ...  \n",
      "3995           3  \n",
      "3996           3  \n",
      "3997           3  \n",
      "3998           3  \n",
      "3999           3  \n",
      "\n",
      "[4000 rows x 8 columns]\n"
     ]
    }
   ],
   "source": [
    "df = db.sql(\"select * from measurements where bench = (select id from bench_types where name = 'criterion')\").df()\n",
    "df[\"duration\"] = pd.to_timedelta(df['duration'], unit='ns').dt.total_seconds()\n",
    "print(df)\n",
    "queryAliases = {}\n",
    "for (id, name) in db.sql(\"select id, name from queries\").fetchall():\n",
    "    queryAliases[id] = name\n",
    "\n",
    "df[\"query\"] = df[\"query\"].apply(lambda q: queryAliases[q])\n",
    "df = df.sort_values(by=['query'])\n",
    "queries = sorted(queryAliases.values())\n",
    "\n",
    "compilers = db.sql(\"select id, name from compilers\").fetchall()\n",
    "partitions = db.sql(\"select id, name from partitions\").fetchall()\n",
    "bench = db.sql(\"select * from compilers\").fetchall()\n",
    "\n",
    "\n",
    "if not os.path.exists(\"images\"):\n",
    "    os.mkdir(\"images\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "id": "4dc1f3ea-b5f7-4be9-84b5-bec031ec64c8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('cpu-genoa', 'simple', 'q2-2', 1965920682.2666664, 0), ('gpu-pvc', 'simple', 'q1-2', 1188905080.6600003, 0), ('cpu-genoa', 'naive', 'q2-1', 4554614491.45, 0), ('gpu-a100', 'simple', 'q2-2', 2711211120.55, 0), ('gpu-pvc', 'adaptive', 'q2-2', 2069519806.25, 0), ('cpu-genoa', 'naive', 'q1-1', 2057303104.9, 0), ('cpu-genoa', 'adaptive', 'q1-1', 1427331502.5000002, 0), ('gpu-a100', 'naive', 'q1-1', 2634335646.6, 0), ('standard96_test', 'adaptive', 'q1-1', 2856096966.3, 0), ('gpu-a100', 'adaptive', 'q2-1', 3161887932.4, 0), ('gpu-pvc', 'naive', 'q2-1', 4344107315.5, 0), ('gpu-a100', 'simple', 'q1-2', 1621278906.125, 0), ('gpu-pvc', 'adaptive', 'q1-2', 1193645518.3333335, 0), ('gpu-pvc', 'simple', 'q2-2', 1851910958.3333333, 0), ('standard96_test', 'adaptive', 'q2-1', 4527176129.8, 0), ('cpu-genoa', 'adaptive', 'q2-1', 2486333482.55, 0), ('gpu-pvc', 'naive', 'q1-1', 1855937529.9, 0), ('cpu-genoa', 'simple', 'q1-2', 1169601225.1799998, 0), ('gpu-a100', 'naive', 'q2-1', 6151676922.4, 0), ('gpu-a100', 'adaptive', 'q1-1', 2031796036.85, 0), ('cpu-genoa', 'adaptive', 'q2-2', 2286686439.4, 0), ('standard96_test', 'adaptive', 'q2-2', 4127432462.9, 0), ('gpu-pvc', 'simple', 'q2-1', 1909676239.8, 0), ('gpu-a100', 'naive', 'q2-2', 5367176018.2, 0), ('cpu-genoa', 'naive', 'q1-2', 2028404712.766667, 0), ('gpu-pvc', 'naive', 'q2-2', 3928432040.6, 0), ('gpu-a100', 'adaptive', 'q2-2', 2898331238.95, 0), ('gpu-pvc', 'simple', 'q1-1', 1199158130.4, 0), ('gpu-a100', 'adaptive', 'q1-2', 1739457004.75, 0), ('gpu-a100', 'simple', 'q2-1', 2821338737.2, 0), ('gpu-pvc', 'naive', 'q1-2', 1823770145.1333332, 0), ('gpu-pvc', 'adaptive', 'q2-1', 2328153008.2, 0), ('cpu-genoa', 'simple', 'q1-1', 1194215290.96, 0), ('gpu-pvc', 'adaptive', 'q1-1', 1883442026.8, 0), ('gpu-a100', 'simple', 'q1-1', 1644526456.075, 0), ('cpu-genoa', 'naive', 'q2-2', 3939685557.25, 0), ('cpu-genoa', 'adaptive', 'q1-2', 1318973275.7666667, 0), ('gpu-a100', 'naive', 'q1-2', 2607321752.15, 0), ('standard96_test', 'adaptive', 'q1-2', 2357584990.15, 0), ('cpu-genoa', 'simple', 'q2-1', 2058943305.1666667, 0), ('cpu-genoa', 'simple', 'q2-2', 1965941472.1666667, 10), ('gpu-pvc', 'simple', 'q1-2', 1189074073.92, 10), ('cpu-genoa', 'naive', 'q2-1', 4550878870.45, 10), ('gpu-pvc', 'adaptive', 'q1-1', 1883965552.35, 10), ('gpu-a100', 'simple', 'q1-1', 1645784568.6, 10), ('cpu-genoa', 'naive', 'q2-2', 3963760098.4, 10), ('cpu-genoa', 'adaptive', 'q1-2', 1318563046.6999998, 10), ('gpu-a100', 'naive', 'q1-2', 2599699154.3, 10), ('standard96_test', 'adaptive', 'q1-2', 2355176104.75, 10), ('cpu-genoa', 'simple', 'q2-1', 2063428377.6, 10), ('gpu-a100', 'simple', 'q2-2', 2742825080.45, 10), ('gpu-pvc', 'adaptive', 'q2-2', 2036211409.5, 10), ('cpu-genoa', 'naive', 'q1-1', 2069433206.9666667, 10), ('cpu-genoa', 'adaptive', 'q1-1', 1420880805.4, 10), ('gpu-a100', 'naive', 'q1-1', 2630632230.1, 10), ('standard96_test', 'adaptive', 'q1-1', 2857486966.45, 10), ('gpu-a100', 'adaptive', 'q2-1', 3255507969.2, 10), ('gpu-pvc', 'naive', 'q2-1', 4346479931.4, 10), ('gpu-a100', 'simple', 'q1-2', 1641421875.25, 10), ('gpu-pvc', 'adaptive', 'q1-2', 1199681236.5, 10), ('gpu-pvc', 'naive', 'q2-2', 3926584375.7, 10), ('gpu-a100', 'adaptive', 'q2-2', 2898107310.95, 10), ('gpu-pvc', 'simple', 'q1-1', 1199716181.6, 10), ('gpu-pvc', 'simple', 'q2-2', 1870469519.8, 10), ('standard96_test', 'adaptive', 'q2-1', 4609639085.2, 10), ('cpu-genoa', 'adaptive', 'q2-1', 2501816745.0, 10), ('gpu-pvc', 'naive', 'q1-1', 1859074389.5333333, 10), ('cpu-genoa', 'simple', 'q1-2', 1169509657.2199998, 10), ('gpu-a100', 'naive', 'q2-1', 6110479917.8, 10), ('gpu-a100', 'adaptive', 'q1-1', 2030948360.7, 10), ('cpu-genoa', 'adaptive', 'q2-2', 2289231512.0, 10), ('standard96_test', 'adaptive', 'q2-2', 4123830087.6, 10), ('gpu-pvc', 'simple', 'q2-1', 1921089981.6333337, 10), ('gpu-a100', 'naive', 'q2-2', 5395676544.2, 10), ('cpu-genoa', 'naive', 'q1-2', 2037173776.3666668, 10), ('gpu-a100', 'adaptive', 'q1-2', 1741424331.1, 10), ('gpu-a100', 'simple', 'q2-1', 2821992665.05, 10), ('gpu-pvc', 'naive', 'q1-2', 1824112640.7333336, 10), ('gpu-pvc', 'adaptive', 'q2-1', 2442924701.9, 10), ('cpu-genoa', 'simple', 'q1-1', 1189513336.56, 10), ('gpu-pvc', 'adaptive', 'q1-1', 1886698622.8, 20), ('gpu-a100', 'simple', 'q1-1', 1644648213.975, 20), ('cpu-genoa', 'naive', 'q2-2', 3953210050.85, 20), ('cpu-genoa', 'adaptive', 'q1-2', 1319886968.6333332, 20), ('gpu-a100', 'naive', 'q1-2', 2595990257.05, 20), ('standard96_test', 'adaptive', 'q1-2', 2362589572.45, 20), ('cpu-genoa', 'simple', 'q2-1', 2045232958.3, 20), ('gpu-a100', 'adaptive', 'q1-2', 1739069413.8, 20), ('gpu-a100', 'simple', 'q2-1', 2803609922.9, 20), ('gpu-pvc', 'naive', 'q1-2', 1824635473.7, 20), ('gpu-pvc', 'adaptive', 'q2-1', 2379267695.0, 20), ('cpu-genoa', 'simple', 'q1-1', 1193482556.3, 20), ('cpu-genoa', 'simple', 'q2-2', 1972176728.9999995, 20), ('gpu-pvc', 'simple', 'q1-2', 1189398074.44, 20), ('cpu-genoa', 'naive', 'q2-1', 4550423999.15, 20), ('cpu-genoa', 'adaptive', 'q1-1', 1422476657.8333333, 20), ('gpu-a100', 'naive', 'q1-1', 2633704620.85, 20), ('standard96_test', 'adaptive', 'q1-1', 2853170545.1, 20), ('gpu-a100', 'adaptive', 'q2-1', 3283904431.3, 20), ('gpu-pvc', 'naive', 'q2-1', 4344291868.85, 20), ('gpu-a100', 'simple', 'q1-2', 1633319501.45, 20), ('gpu-pvc', 'adaptive', 'q1-2', 1201517393.3666666, 20), ('cpu-genoa', 'adaptive', 'q2-2', 2284164951.9, 20), ('standard96_test', 'adaptive', 'q2-2', 4124369952.1, 20), ('gpu-pvc', 'simple', 'q2-1', 1911509243.233333, 20), ('gpu-a100', 'naive', 'q2-2', 5395131336.8, 20), ('cpu-genoa', 'naive', 'q1-2', 2029250959.6666665, 20), ('gpu-pvc', 'simple', 'q2-2', 1862018967.1333332, 20), ('standard96_test', 'adaptive', 'q2-1', 4526617459.4, 20), ('cpu-genoa', 'adaptive', 'q2-1', 2493672472.25, 20), ('gpu-pvc', 'naive', 'q1-1', 1856375141.4666665, 20), ('cpu-genoa', 'simple', 'q1-2', 1165413712.32, 20), ('gpu-a100', 'naive', 'q2-1', 6028498144.3, 20), ('gpu-a100', 'adaptive', 'q1-1', 2032032087.55, 20), ('gpu-a100', 'simple', 'q2-2', 2737742532.85, 20), ('gpu-pvc', 'adaptive', 'q2-2', 2045892135.55, 20), ('cpu-genoa', 'naive', 'q1-1', 2067598919.0000005, 20), ('gpu-pvc', 'naive', 'q2-2', 3926909587.85, 20), ('gpu-a100', 'adaptive', 'q2-2', 2900952655.8, 20), ('gpu-pvc', 'simple', 'q1-1', 1198604725.94, 20), ('gpu-a100', 'adaptive', 'q1-2', 1742369053.25, 30), ('gpu-a100', 'simple', 'q2-1', 2834290212.55, 30), ('gpu-pvc', 'naive', 'q1-2', 1824509875.6, 30), ('gpu-pvc', 'adaptive', 'q2-1', 2329390971.65, 30), ('cpu-genoa', 'simple', 'q1-1', 1193696731.44, 30), ('cpu-genoa', 'adaptive', 'q2-2', 2278054071.8, 30), ('standard96_test', 'adaptive', 'q2-2', 4115279425.9, 30), ('gpu-pvc', 'simple', 'q2-1', 1902347729.733333, 30), ('gpu-a100', 'naive', 'q2-2', 5370604033.8, 30), ('cpu-genoa', 'naive', 'q1-2', 2024819278.0333333, 30), ('gpu-pvc', 'adaptive', 'q1-1', 1884063970.85, 30), ('gpu-a100', 'simple', 'q1-1', 1645825263.85, 30), ('cpu-genoa', 'naive', 'q2-2', 3951399745.2, 30), ('cpu-genoa', 'adaptive', 'q1-2', 1322599934.8333333, 30), ('gpu-a100', 'naive', 'q1-2', 2600627620.25, 30), ('standard96_test', 'adaptive', 'q1-2', 2355413264.45, 30), ('cpu-genoa', 'simple', 'q2-1', 2050950482.3666668, 30), ('cpu-genoa', 'adaptive', 'q1-1', 1424639047.6666665, 30), ('gpu-a100', 'naive', 'q1-1', 2631318875.85, 30), ('standard96_test', 'adaptive', 'q1-1', 2855564216.8, 30), ('gpu-a100', 'adaptive', 'q2-1', 3206763601.9, 30), ('gpu-pvc', 'naive', 'q2-1', 4344538049.85, 30), ('gpu-a100', 'simple', 'q1-2', 1627303750.65, 30), ('gpu-pvc', 'adaptive', 'q1-2', 1202739378.1333334, 30), ('gpu-a100', 'simple', 'q2-2', 2725254768.95, 30), ('gpu-pvc', 'adaptive', 'q2-2', 2064369424.1, 30), ('cpu-genoa', 'naive', 'q1-1', 2065522017.4999995, 30), ('gpu-pvc', 'naive', 'q2-2', 3927317230.45, 30), ('gpu-a100', 'adaptive', 'q2-2', 2890160123.55, 30), ('gpu-pvc', 'simple', 'q1-1', 1198092355.7199998, 30), ('gpu-pvc', 'simple', 'q2-2', 1861029331.0666664, 30), ('standard96_test', 'adaptive', 'q2-1', 4516186331.5, 30), ('cpu-genoa', 'adaptive', 'q2-1', 2494586925.45, 30), ('gpu-pvc', 'naive', 'q1-1', 1855217547.4333336, 30), ('cpu-genoa', 'simple', 'q1-2', 1163101805.18, 30), ('gpu-a100', 'naive', 'q2-1', 5943378144.1, 30), ('gpu-a100', 'adaptive', 'q1-1', 2027766058.0, 30), ('cpu-genoa', 'simple', 'q2-2', 1973271697.4, 30), ('gpu-pvc', 'simple', 'q1-2', 1188855738.5, 30), ('cpu-genoa', 'naive', 'q2-1', 4545353506.7, 30), ('gpu-a100', 'adaptive', 'q1-2', 1743269446.55, 40), ('gpu-a100', 'simple', 'q2-1', 2788294169.4, 40), ('gpu-pvc', 'naive', 'q1-2', 1822419408.8, 40), ('gpu-pvc', 'adaptive', 'q2-1', 2324143402.45, 40), ('cpu-genoa', 'simple', 'q1-1', 1190621463.34, 40), ('cpu-genoa', 'adaptive', 'q1-1', 1426260784.9333332, 40), ('gpu-a100', 'naive', 'q1-1', 2627841697.3, 40), ('standard96_test', 'adaptive', 'q1-1', 2856424991.85, 40), ('gpu-a100', 'adaptive', 'q2-1', 3187580176.8, 40), ('gpu-pvc', 'naive', 'q2-1', 4347510966.25, 40), ('gpu-a100', 'simple', 'q1-2', 1628443851.85, 40), ('gpu-pvc', 'adaptive', 'q1-2', 1204086466.8000002, 40), ('cpu-genoa', 'simple', 'q2-2', 1971589738.4999995, 40), ('gpu-pvc', 'simple', 'q1-2', 1190761063.6000001, 40), ('cpu-genoa', 'naive', 'q2-1', 4504246773.8, 40), ('cpu-genoa', 'adaptive', 'q2-2', 2273277607.9, 40), ('standard96_test', 'adaptive', 'q2-2', 4118777474.7, 40), ('gpu-pvc', 'simple', 'q2-1', 1906537421.8, 40), ('gpu-a100', 'naive', 'q2-2', 5395535590.6, 40), ('cpu-genoa', 'naive', 'q1-2', 2030606510.5666664, 40), ('gpu-pvc', 'adaptive', 'q1-1', 1884562162.15, 40), ('gpu-a100', 'simple', 'q1-1', 1644399182.325, 40), ('cpu-genoa', 'naive', 'q2-2', 3953214243.3, 40), ('cpu-genoa', 'adaptive', 'q1-2', 1322603055.0000002, 40), ('gpu-a100', 'naive', 'q1-2', 2603135811.85, 40), ('standard96_test', 'adaptive', 'q1-2', 2356786930.25, 40), ('cpu-genoa', 'simple', 'q2-1', 2054303778.6333337, 40), ('gpu-pvc', 'simple', 'q2-2', 1873818762.5333328, 40), ('standard96_test', 'adaptive', 'q2-1', 4507119343.4, 40), ('cpu-genoa', 'adaptive', 'q2-1', 2496467692.55, 40), ('gpu-pvc', 'naive', 'q1-1', 1854890951.4333332, 40), ('cpu-genoa', 'simple', 'q1-2', 1175138604.0400002, 40), ('gpu-a100', 'naive', 'q2-1', 5955264480.5, 40), ('gpu-a100', 'adaptive', 'q1-1', 2029808814.75, 40), ('gpu-a100', 'simple', 'q2-2', 2752869244.65, 40), ('gpu-pvc', 'adaptive', 'q2-2', 2038576428.2, 40), ('cpu-genoa', 'naive', 'q1-1', 2062889003.5999997, 40), ('gpu-pvc', 'naive', 'q2-2', 3926794158.65, 40), ('gpu-a100', 'adaptive', 'q2-2', 2886659361.05, 40), ('gpu-pvc', 'simple', 'q1-1', 1198375769.22, 40), ('cpu-genoa', 'adaptive', 'q2-2', 2273617795.0, 50), ('standard96_test', 'adaptive', 'q2-2', 4132599859.7, 50), ('gpu-pvc', 'simple', 'q2-1', 1909756704.0333335, 50), ('gpu-a100', 'naive', 'q2-2', 5383861608.5, 50), ('cpu-genoa', 'naive', 'q1-2', 2020093056.0333333, 50), ('gpu-pvc', 'naive', 'q2-2', 3928523530.5, 50), ('gpu-a100', 'adaptive', 'q2-2', 2898271620.7, 50), ('gpu-pvc', 'simple', 'q1-1', 1197806509.52, 50), ('gpu-pvc', 'adaptive', 'q1-1', 1885533326.65, 50), ('gpu-a100', 'simple', 'q1-1', 1640515486.25, 50), ('cpu-genoa', 'naive', 'q2-2', 3965088982.25, 50), ('cpu-genoa', 'adaptive', 'q1-2', 1321873076.6, 50), ('gpu-a100', 'naive', 'q1-2', 2594050703.3, 50), ('standard96_test', 'adaptive', 'q1-2', 2355422902.15, 50), ('cpu-genoa', 'simple', 'q2-1', 2057154670.266667, 50), ('gpu-pvc', 'simple', 'q2-2', 1868280692.5, 50), ('standard96_test', 'adaptive', 'q2-1', 4513652786.1, 50), ('cpu-genoa', 'adaptive', 'q2-1', 2494295415.55, 50), ('gpu-pvc', 'naive', 'q1-1', 1855398716.3, 50), ('cpu-genoa', 'simple', 'q1-2', 1177234455.8000002, 50), ('gpu-a100', 'naive', 'q2-1', 5903337672.2, 50), ('gpu-a100', 'adaptive', 'q1-1', 2029175158.6, 50), ('gpu-a100', 'adaptive', 'q1-2', 1742822376.2, 50), ('gpu-a100', 'simple', 'q2-1', 2815012712.7, 50), ('gpu-pvc', 'naive', 'q1-2', 1823323446.766667, 50), ('gpu-pvc', 'adaptive', 'q2-1', 2322885710.2, 50), ('cpu-genoa', 'simple', 'q1-1', 1184005154.3600001, 50), ('cpu-genoa', 'simple', 'q2-2', 1983150090.4333332, 50), ('gpu-pvc', 'simple', 'q1-2', 1189578640.22, 50), ('cpu-genoa', 'naive', 'q2-1', 4472590290.6, 50), ('cpu-genoa', 'adaptive', 'q1-1', 1435503535.6, 50), ('gpu-a100', 'naive', 'q1-1', 2633267872.45, 50), ('standard96_test', 'adaptive', 'q1-1', 2854062113.65, 50), ('gpu-a100', 'adaptive', 'q2-1', 3177751050.4, 50), ('gpu-pvc', 'naive', 'q2-1', 4344605714.15, 50), ('gpu-a100', 'simple', 'q1-2', 1626311867.3, 50), ('gpu-pvc', 'adaptive', 'q1-2', 1204826188.766667, 50), ('gpu-a100', 'simple', 'q2-2', 2743546268.55, 50), ('gpu-pvc', 'adaptive', 'q2-2', 2033429393.15, 50), ('cpu-genoa', 'naive', 'q1-1', 2070414744.7, 50), ('gpu-pvc', 'adaptive', 'q1-1', 1885620318.7, 60), ('gpu-a100', 'simple', 'q1-1', 1641008738.75, 60), ('cpu-genoa', 'naive', 'q2-2', 3963039923.45, 60), ('cpu-genoa', 'adaptive', 'q1-2', 1318685558.4666667, 60), ('gpu-a100', 'naive', 'q1-2', 2603218118.55, 60), ('standard96_test', 'adaptive', 'q1-2', 2351556721.05, 60), ('cpu-genoa', 'simple', 'q2-1', 2064465859.0333335, 60), ('gpu-pvc', 'simple', 'q2-2', 1877702099.3666668, 60), ('standard96_test', 'adaptive', 'q2-1', 4511304483.3, 60), ('cpu-genoa', 'adaptive', 'q2-1', 2490165236.95, 60), ('gpu-pvc', 'naive', 'q1-1', 1855476385.233333, 60), ('cpu-genoa', 'simple', 'q1-2', 1174405371.76, 60), ('gpu-a100', 'naive', 'q2-1', 5898890458.3, 60), ('gpu-a100', 'adaptive', 'q1-1', 2027688848.25, 60), ('cpu-genoa', 'simple', 'q2-2', 1963720436.1333337, 60), ('gpu-pvc', 'simple', 'q1-2', 1189990650.3600001, 60), ('cpu-genoa', 'naive', 'q2-1', 4427777595.4, 60), ('cpu-genoa', 'adaptive', 'q2-2', 2263916697.4, 60), ('standard96_test', 'adaptive', 'q2-2', 4121886743.2, 60), ('gpu-pvc', 'simple', 'q2-1', 1919486911.4333336, 60), ('gpu-a100', 'naive', 'q2-2', 5373230341.3, 60), ('cpu-genoa', 'naive', 'q1-2', 2032399478.8666663, 60), ('gpu-a100', 'simple', 'q2-2', 2751525030.85, 60), ('gpu-pvc', 'adaptive', 'q2-2', 2040842441.2, 60), ('cpu-genoa', 'naive', 'q1-1', 2071513829.3, 60), ('cpu-genoa', 'adaptive', 'q1-1', 1442462720.4, 60), ('gpu-a100', 'naive', 'q1-1', 2634903686.5, 60), ('standard96_test', 'adaptive', 'q1-1', 2853424815.05, 60), ('gpu-a100', 'adaptive', 'q2-1', 3174706799.3, 60), ('gpu-pvc', 'naive', 'q2-1', 4343844590.05, 60), ('gpu-a100', 'simple', 'q1-2', 1625158127.275, 60), ('gpu-pvc', 'adaptive', 'q1-2', 1205128491.2999997, 60), ('gpu-a100', 'adaptive', 'q1-2', 1746720134.25, 60), ('gpu-a100', 'simple', 'q2-1', 2805654025.35, 60), ('gpu-pvc', 'naive', 'q1-2', 1822897965.6666667, 60), ('gpu-pvc', 'adaptive', 'q2-1', 2322618304.8, 60), ('cpu-genoa', 'simple', 'q1-1', 1188542731.1, 60), ('gpu-pvc', 'naive', 'q2-2', 3939170952.85, 60), ('gpu-a100', 'adaptive', 'q2-2', 2886014829.65, 60), ('gpu-pvc', 'simple', 'q1-1', 1197753913.1, 60), ('gpu-pvc', 'simple', 'q2-2', 1880748454.1333337, 70), ('standard96_test', 'adaptive', 'q2-1', 4519638779.3, 70), ('cpu-genoa', 'adaptive', 'q2-1', 2492309938.45, 70), ('gpu-pvc', 'naive', 'q1-1', 1854153073.1, 70), ('cpu-genoa', 'simple', 'q1-2', 1175692286.26, 70), ('gpu-a100', 'naive', 'q2-1', 5871528671.5, 70), ('gpu-a100', 'adaptive', 'q1-1', 2027424750.35, 70), ('gpu-pvc', 'adaptive', 'q1-1', 1883064914.95, 70), ('gpu-a100', 'simple', 'q1-1', 1644734328.3, 70), ('cpu-genoa', 'naive', 'q2-2', 3957519720.55, 70), ('cpu-genoa', 'adaptive', 'q1-2', 1319230539.5333333, 70), ('gpu-a100', 'naive', 'q1-2', 2594053921.3, 70), ('standard96_test', 'adaptive', 'q1-2', 2359426851.65, 70), ('cpu-genoa', 'simple', 'q2-1', 2049690425.5, 70), ('cpu-genoa', 'adaptive', 'q1-1', 1457807931.9, 70), ('gpu-a100', 'naive', 'q1-1', 2637367597.2, 70), ('standard96_test', 'adaptive', 'q1-1', 2853629358.8, 70), ('gpu-a100', 'adaptive', 'q2-1', 3159885124.2, 70), ('gpu-pvc', 'naive', 'q2-1', 4343791739.3, 70), ('gpu-a100', 'simple', 'q1-2', 1623015653.875, 70), ('gpu-pvc', 'adaptive', 'q1-2', 1204679881.5333333, 70), ('gpu-a100', 'adaptive', 'q1-2', 1745412788.05, 70), ('gpu-a100', 'simple', 'q2-1', 2820406852.45, 70), ('gpu-pvc', 'naive', 'q1-2', 1825250832.4, 70), ('gpu-pvc', 'adaptive', 'q2-1', 2319507738.05, 70), ('cpu-genoa', 'simple', 'q1-1', 1188359500.96, 70), ('cpu-genoa', 'adaptive', 'q2-2', 2270096220.75, 70), ('standard96_test', 'adaptive', 'q2-2', 4109521526.9, 70), ('gpu-pvc', 'simple', 'q2-1', 1914232117.8666663, 70), ('gpu-a100', 'naive', 'q2-2', 5376834601.3, 70), ('cpu-genoa', 'naive', 'q1-2', 2028604094.7, 70), ('cpu-genoa', 'simple', 'q2-2', 1998097878.1, 70), ('gpu-pvc', 'simple', 'q1-2', 1189968713.24, 70), ('cpu-genoa', 'naive', 'q2-1', 4381886574.15, 70), ('gpu-pvc', 'naive', 'q2-2', 3928088414.75, 70), ('gpu-a100', 'adaptive', 'q2-2', 2885654689.35, 70), ('gpu-pvc', 'simple', 'q1-1', 1198753838.52, 70), ('gpu-a100', 'simple', 'q2-2', 2702943262.45, 70), ('gpu-pvc', 'adaptive', 'q2-2', 2041279985.3, 70), ('cpu-genoa', 'naive', 'q1-1', 2065103958.4000003, 70), ('cpu-genoa', 'simple', 'q2-2', 1988327107.233333, 80), ('gpu-pvc', 'simple', 'q1-2', 1188981280.48, 80), ('cpu-genoa', 'naive', 'q2-1', 4326185765.3, 80), ('gpu-a100', 'simple', 'q2-2', 2688655063.65, 80), ('gpu-pvc', 'adaptive', 'q2-2', 2028213177.5, 80), ('cpu-genoa', 'naive', 'q1-1', 2053759686.1333332, 80), ('cpu-genoa', 'adaptive', 'q2-2', 2266269756.0, 80), ('standard96_test', 'adaptive', 'q2-2', 4113549783.0, 80), ('gpu-pvc', 'simple', 'q2-1', 1909912524.9000003, 80), ('gpu-a100', 'naive', 'q2-2', 5368765368.4, 80), ('cpu-genoa', 'naive', 'q1-2', 2018469476.4666667, 80), ('cpu-genoa', 'adaptive', 'q1-1', 1450889904.4666667, 80), ('gpu-a100', 'naive', 'q1-1', 2634492003.45, 80), ('standard96_test', 'adaptive', 'q1-1', 2854657659.0, 80), ('gpu-a100', 'adaptive', 'q2-1', 3153056035.4, 80), ('gpu-pvc', 'naive', 'q2-1', 4349270706.35, 80), ('gpu-a100', 'simple', 'q1-2', 1621047478.85, 80), ('gpu-pvc', 'adaptive', 'q1-2', 1205190449.7666667, 80), ('gpu-a100', 'adaptive', 'q1-2', 1743483274.4, 80), ('gpu-a100', 'simple', 'q2-1', 2795421779.8, 80), ('gpu-pvc', 'naive', 'q1-2', 1823661605.6666665, 80), ('gpu-pvc', 'adaptive', 'q2-1', 2325529280.45, 80), ('cpu-genoa', 'simple', 'q1-1', 1191168967.7800002, 80), ('gpu-pvc', 'adaptive', 'q1-1', 1884601310.7, 80), ('gpu-a100', 'simple', 'q1-1', 1642086509.125, 80), ('cpu-genoa', 'naive', 'q2-2', 3956674796.05, 80), ('cpu-genoa', 'adaptive', 'q1-2', 1321470276.6333334, 80), ('gpu-a100', 'naive', 'q1-2', 2597388255.25, 80), ('standard96_test', 'adaptive', 'q1-2', 2352151336.75, 80), ('cpu-genoa', 'simple', 'q2-1', 2054127014.4, 80), ('gpu-pvc', 'naive', 'q2-2', 3924699152.85, 80), ('gpu-a100', 'adaptive', 'q2-2', 2885692516.85, 80), ('gpu-pvc', 'simple', 'q1-1', 1199440493.62, 80), ('gpu-pvc', 'simple', 'q2-2', 1866393031.7333336, 80), ('standard96_test', 'adaptive', 'q2-1', 4505577712.6, 80), ('cpu-genoa', 'adaptive', 'q2-1', 2498837609.7, 80), ('gpu-pvc', 'naive', 'q1-1', 1854091699.0333333, 80), ('cpu-genoa', 'simple', 'q1-2', 1175791268.24, 80), ('gpu-a100', 'naive', 'q2-1', 5876001136.7, 80), ('gpu-a100', 'adaptive', 'q1-1', 2023810452.9, 80), ('gpu-a100', 'simple', 'q2-2', 2696311165.95, 90), ('gpu-pvc', 'adaptive', 'q2-2', 2025413834.0, 90), ('cpu-genoa', 'naive', 'q1-1', 2051382702.9333332, 90), ('gpu-pvc', 'adaptive', 'q1-1', 1886499297.3, 90), ('gpu-a100', 'simple', 'q1-1', 1640217399.325, 90), ('cpu-genoa', 'naive', 'q2-2', 3946781673.6, 90), ('cpu-genoa', 'adaptive', 'q1-2', 1321464517.3666668, 90), ('gpu-a100', 'naive', 'q1-2', 2595966830.05, 90), ('standard96_test', 'adaptive', 'q1-2', 2351708492.55, 90), ('cpu-genoa', 'simple', 'q2-1', 2062626139.5333333, 90), ('cpu-genoa', 'adaptive', 'q1-1', 1443573589.2, 90), ('gpu-a100', 'naive', 'q1-1', 2634523771.3, 90), ('standard96_test', 'adaptive', 'q1-1', 2855240409.9, 90), ('gpu-a100', 'adaptive', 'q2-1', 3156240529.0, 90), ('gpu-pvc', 'naive', 'q2-1', 4346059235.4, 90), ('gpu-a100', 'simple', 'q1-2', 1622120454.2, 90), ('gpu-pvc', 'adaptive', 'q1-2', 1205684751.3666666, 90), ('cpu-genoa', 'adaptive', 'q2-2', 2268519178.7, 90), ('standard96_test', 'adaptive', 'q2-2', 4110910813.8, 90), ('gpu-pvc', 'simple', 'q2-1', 1912589158.1333332, 90), ('gpu-a100', 'naive', 'q2-2', 5386158382.6, 90), ('cpu-genoa', 'naive', 'q1-2', 2011010407.1333332, 90), ('gpu-pvc', 'naive', 'q2-2', 3924815455.1, 90), ('gpu-a100', 'adaptive', 'q2-2', 2881687898.55, 90), ('gpu-pvc', 'simple', 'q1-1', 1198455453.2599998, 90), ('gpu-a100', 'adaptive', 'q1-2', 1745080172.8, 90), ('gpu-a100', 'simple', 'q2-1', 2820965809.75, 90), ('gpu-pvc', 'naive', 'q1-2', 1822073902.2666664, 90), ('gpu-pvc', 'adaptive', 'q2-1', 2332914865.4, 90), ('cpu-genoa', 'simple', 'q1-1', 1187870539.5399997, 90), ('gpu-pvc', 'simple', 'q2-2', 1863254618.9, 90), ('standard96_test', 'adaptive', 'q2-1', 4516886524.1, 90), ('cpu-genoa', 'adaptive', 'q2-1', 2510034608.05, 90), ('gpu-pvc', 'naive', 'q1-1', 1854280275.0333333, 90), ('cpu-genoa', 'simple', 'q1-2', 1175293533.8799999, 90), ('gpu-a100', 'naive', 'q2-1', 5868396299.3, 90), ('gpu-a100', 'adaptive', 'q1-1', 2024203331.0, 90), ('cpu-genoa', 'simple', 'q2-2', 1989044650.8999996, 90), ('gpu-pvc', 'simple', 'q1-2', 1188610797.96, 90), ('cpu-genoa', 'naive', 'q2-1', 4338039549.3, 90)]\n",
      "     partition  compiler query  duration  iter_number\n",
      "0    cpu-genoa    simple  q2-2  1.965921            0\n",
      "1      gpu-pvc    simple  q1-2  1.188905            0\n",
      "2    cpu-genoa     naive  q2-1  4.554614            0\n",
      "3     gpu-a100    simple  q2-2  2.711211            0\n",
      "4      gpu-pvc  adaptive  q2-2  2.069520            0\n",
      "..         ...       ...   ...       ...          ...\n",
      "395   gpu-a100     naive  q2-1  5.868396           90\n",
      "396   gpu-a100  adaptive  q1-1  2.024203           90\n",
      "397  cpu-genoa    simple  q2-2  1.989045           90\n",
      "398    gpu-pvc    simple  q1-2  1.188611           90\n",
      "399  cpu-genoa     naive  q2-1  4.338040           90\n",
      "\n",
      "[400 rows x 5 columns]\n"
     ]
    }
   ],
   "source": [
    "bins = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]\n",
    "values = []\n",
    "\n",
    "for i in range(1, len(bins)):\n",
    "    values.extend(db.sql(\"\"\"\n",
    "    select\n",
    "      (select name from partitions where id = partition) as partition,\n",
    "      (select name from compilers where id = compiler) as compiler,\n",
    "      (select name from queries where id = query) as query,\n",
    "    avg(duration / iter_count) as duration,\n",
    "      %d\n",
    "    from measurements\n",
    "      where bench = (select id from bench_types where name = 'criterion') and\n",
    "            iter_number < %d and iter_number >= %d\n",
    "      group by partition, compiler, query;\"\"\" % (bins[i-1], bins[i], bins[i-1])).fetchall())\n",
    "\n",
    "print(values)\n",
    "binned_df = pd.DataFrame(values, columns =['partition', \"compiler\", \"query\", \"duration\", \"iter_number\"])\n",
    "binned_df[\"duration\"] = pd.to_timedelta(binned_df['duration'], unit='ns').dt.total_seconds()\n",
    "print(binned_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "id": "bea4da13-2431-4531-ba49-71d5fb3b5b3a",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "application/vnd.plotly.v1+json": {
       "config": {
        "plotlyServerURL": "https://plot.ly"
       },
       "data": [
        {
         "hovertemplate": "query=q2-2<br>iteration (mean over 10 samples)=%{x}<br>duration in seconds=%{y}<extra></extra>",
         "legendgroup": "q2-2",
         "marker": {
          "color": "red",
          "symbol": "circle"
         },
         "mode": "markers",
         "orientation": "v",
         "showlegend": true,
         "type": "scatter",
         "x": [
          0,
          10,
          20,
         ],
         "xaxis": "x",
         "y": [
          2.069519806,
          2.036211409,
          2.045892135,
          2.064369424,
          2.038576428,
          2.033429393,
          2.040842441,
          2.041279985,
          2.028213177,
          2.025413834
         ],
         "yaxis": "y"
        },
        {
         "hovertemplate": "query=q1-2<br>iteration (mean over 10 samples)=%{x}<br>duration in seconds=%{y}<extra></extra>",
         "legendgroup": "q1-2",
         "marker": {
          "color": "blue",
          "symbol": "circle"
         },
         "mode": "markers",
         "name": "q1-2",
         "orientation": "v",
         "showlegend": true,
         "type": "scatter",
         "x": [
          0,
          10,
          20,
          30,
         ],
         "xaxis": "x",
         "y": [
          1.193645518,
          1.199681236,
          1.201517393,
          1.202739378,
          1.204086466,
          1.204826188,
          1.205128491,
          1.204679881,
          1.205190449,
          1.205684751
         ],
         "yaxis": "y"
        },
        {
         "hovertemplate": "query=q2-1<br>iteration (mean over 10 samples)=%{x}<br>duration in seconds=%{y}<extra></extra>",
         "legendgroup": "q2-1",
         "marker": {
          "color": "yellow",
          "symbol": "circle"
         },
         "mode": "markers",
         "name": "q2-1",
         "orientation": "v",
         "showlegend": true,
         "type": "scatter",
         "x": [
          0,
          10,
         ],
         "xaxis": "x",
         "y": [
          2.328153008,
          2.442924701,
          2.379267695,
          2.329390971,
          2.324143402,
          2.32288571,
          2.322618304,
          2.319507738,
          2.32552928,
          2.332914865
         ],
         "yaxis": "y"
        },
        {
         "hovertemplate": "query=q1-1<br>iteration (mean over 10 samples)=%{x}<br>duration in seconds=%{y}<extra></extra>",
         "legendgroup": "q1-1",
         "marker": {
          "color": "purple",
          "symbol": "circle"
         },
         "mode": "markers",
         "orientation": "v",
         "showlegend": true,
         "type": "scatter",
         "x": [
         ],
         "xaxis": "x",
         "y": [
          1.883442026,
          1.883965552,
          1.886698622,
          1.88406397,
          1.884562162,
          1.885533326,
          1.885620318,
          1.883064914,
          1.88460131,
          1.886499297
         ],
         "yaxis": "y"
        }
       ],
       "layout": {
        "height": 360,
        "legend": {
         "title": {
          "text": "query"
         },
         "tracegroupgap": 0
        },
        "paper_bgcolor": "rgba(0, 0, 0, 0)",
        "plot_bgcolor": "rgba(0, 0, 0, 0)",
        "showlegend": false,
311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 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
        "template": {
         "data": {
          "bar": [
           {
            "error_x": {
             "color": "rgb(36,36,36)"
            },
            "error_y": {
             "color": "rgb(36,36,36)"
            },
            "marker": {
             "line": {
              "color": "rgb(234,234,242)",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "bar"
           }
          ],
          "barpolar": [
           {
            "marker": {
             "line": {
              "color": "rgb(234,234,242)",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "barpolar"
           }
          ],
          "carpet": [
           {
            "aaxis": {
             "endlinecolor": "rgb(36,36,36)",
             "gridcolor": "white",
             "linecolor": "white",
             "minorgridcolor": "white",
             "startlinecolor": "rgb(36,36,36)"
            },
            "baxis": {
             "endlinecolor": "rgb(36,36,36)",
             "gridcolor": "white",
             "linecolor": "white",
             "minorgridcolor": "white",
             "startlinecolor": "rgb(36,36,36)"
            },
            "type": "carpet"
           }
          ],
          "choropleth": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "tickcolor": "rgb(36,36,36)",
             "ticklen": 8,
             "ticks": "outside",
             "tickwidth": 2
            },
            "type": "choropleth"
           }
          ],
          "contour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "tickcolor": "rgb(36,36,36)",
             "ticklen": 8,
             "ticks": "outside",
             "tickwidth": 2
            },
            "colorscale": [
             [
              0,
              "rgb(2,4,25)"
             ],
             [
              0.06274509803921569,
              "rgb(24,15,41)"
             ],
             [
              0.12549019607843137,
              "rgb(47,23,57)"
             ],
             [
              0.18823529411764706,
              "rgb(71,28,72)"
             ],
             [
              0.25098039215686274,
              "rgb(97,30,82)"
             ],
             [
              0.3137254901960784,
              "rgb(123,30,89)"
             ],
             [
              0.3764705882352941,
              "rgb(150,27,91)"
             ],
             [
              0.4392156862745098,
              "rgb(177,22,88)"
             ],
             [
              0.5019607843137255,
              "rgb(203,26,79)"
             ],
             [
              0.5647058823529412,
              "rgb(223,47,67)"
             ],
             [
              0.6274509803921569,
              "rgb(236,76,61)"
             ],
             [
              0.6901960784313725,
              "rgb(242,107,73)"
             ],
             [
              0.7529411764705882,
              "rgb(244,135,95)"
             ],
             [
              0.8156862745098039,
              "rgb(245,162,122)"
             ],
             [
              0.8784313725490196,
              "rgb(246,188,153)"
             ],
             [
              0.9411764705882353,
              "rgb(247,212,187)"
             ],
             [
              1,
              "rgb(250,234,220)"
             ]
            ],
            "type": "contour"
           }
          ],
          "contourcarpet": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "tickcolor": "rgb(36,36,36)",
             "ticklen": 8,
             "ticks": "outside",
             "tickwidth": 2
            },
            "type": "contourcarpet"
           }
          ],
          "heatmap": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "tickcolor": "rgb(36,36,36)",
             "ticklen": 8,
             "ticks": "outside",
             "tickwidth": 2
            },
            "colorscale": [
             [
              0,
              "rgb(2,4,25)"
             ],
             [
              0.06274509803921569,
              "rgb(24,15,41)"
             ],
             [
              0.12549019607843137,
              "rgb(47,23,57)"
             ],
             [
              0.18823529411764706,
              "rgb(71,28,72)"
             ],
             [
              0.25098039215686274,
              "rgb(97,30,82)"
             ],
             [
              0.3137254901960784,
              "rgb(123,30,89)"
             ],
             [
              0.3764705882352941,
              "rgb(150,27,91)"
             ],
             [
              0.4392156862745098,
              "rgb(177,22,88)"
             ],
             [
              0.5019607843137255,
              "rgb(203,26,79)"
             ],
             [
              0.5647058823529412,
              "rgb(223,47,67)"
             ],
             [
              0.6274509803921569,
              "rgb(236,76,61)"
             ],
             [
              0.6901960784313725,
              "rgb(242,107,73)"
             ],
             [
              0.7529411764705882,
              "rgb(244,135,95)"
             ],
             [
              0.8156862745098039,
              "rgb(245,162,122)"
             ],
             [
              0.8784313725490196,
              "rgb(246,188,153)"
             ],
             [
              0.9411764705882353,
              "rgb(247,212,187)"
             ],
             [
              1,
              "rgb(250,234,220)"
             ]
            ],
            "type": "heatmap"
           }
          ],
          "heatmapgl": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "tickcolor": "rgb(36,36,36)",
             "ticklen": 8,
             "ticks": "outside",
             "tickwidth": 2
            },
            "colorscale": [
             [
              0,
              "rgb(2,4,25)"
             ],
             [
              0.06274509803921569,
              "rgb(24,15,41)"
             ],
             [
              0.12549019607843137,
              "rgb(47,23,57)"
             ],
             [
              0.18823529411764706,
              "rgb(71,28,72)"
             ],
             [
              0.25098039215686274,
              "rgb(97,30,82)"
             ],
             [
              0.3137254901960784,
              "rgb(123,30,89)"
             ],
             [
              0.3764705882352941,
              "rgb(150,27,91)"
             ],
             [
              0.4392156862745098,
              "rgb(177,22,88)"
             ],
             [
              0.5019607843137255,
              "rgb(203,26,79)"
             ],
             [
              0.5647058823529412,
              "rgb(223,47,67)"
             ],
             [
              0.6274509803921569,
              "rgb(236,76,61)"
             ],
             [
              0.6901960784313725,
              "rgb(242,107,73)"
             ],
             [
              0.7529411764705882,
              "rgb(244,135,95)"
             ],
             [
              0.8156862745098039,
              "rgb(245,162,122)"
             ],
             [
              0.8784313725490196,
              "rgb(246,188,153)"
             ],
             [
              0.9411764705882353,
              "rgb(247,212,187)"
             ],
             [
              1,
              "rgb(250,234,220)"
             ]
            ],
            "type": "heatmapgl"
           }
          ],
          "histogram": [
           {
            "marker": {
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "histogram"
           }
          ],
          "histogram2d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "tickcolor": "rgb(36,36,36)",
             "ticklen": 8,
             "ticks": "outside",
             "tickwidth": 2
            },
            "colorscale": [
             [
              0,
              "rgb(2,4,25)"
             ],
             [
              0.06274509803921569,
              "rgb(24,15,41)"
             ],
             [
              0.12549019607843137,
              "rgb(47,23,57)"
             ],
             [
              0.18823529411764706,
              "rgb(71,28,72)"
             ],
             [
              0.25098039215686274,
              "rgb(97,30,82)"
             ],
             [
              0.3137254901960784,
              "rgb(123,30,89)"
             ],
             [
              0.3764705882352941,
              "rgb(150,27,91)"
             ],
             [
              0.4392156862745098,
              "rgb(177,22,88)"
             ],
             [
              0.5019607843137255,
              "rgb(203,26,79)"
             ],
             [
              0.5647058823529412,
              "rgb(223,47,67)"
             ],
             [
              0.6274509803921569,
              "rgb(236,76,61)"
             ],
             [
              0.6901960784313725,
              "rgb(242,107,73)"
             ],
             [
              0.7529411764705882,
              "rgb(244,135,95)"
             ],
             [
              0.8156862745098039,
              "rgb(245,162,122)"
             ],
             [
              0.8784313725490196,
              "rgb(246,188,153)"
             ],
             [
              0.9411764705882353,
              "rgb(247,212,187)"
             ],
             [
              1,
              "rgb(250,234,220)"
             ]
            ],
            "type": "histogram2d"
           }
          ],
          "histogram2dcontour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "tickcolor": "rgb(36,36,36)",
             "ticklen": 8,
             "ticks": "outside",
             "tickwidth": 2
            },
            "colorscale": [
             [
              0,
              "rgb(2,4,25)"
             ],
             [
              0.06274509803921569,
              "rgb(24,15,41)"
             ],
             [
              0.12549019607843137,
              "rgb(47,23,57)"
             ],
             [
              0.18823529411764706,
              "rgb(71,28,72)"
             ],
             [
              0.25098039215686274,
              "rgb(97,30,82)"
             ],
             [
              0.3137254901960784,
              "rgb(123,30,89)"
             ],
             [
              0.3764705882352941,
              "rgb(150,27,91)"
             ],
             [
              0.4392156862745098,
              "rgb(177,22,88)"
             ],
             [
              0.5019607843137255,
              "rgb(203,26,79)"
             ],
             [
              0.5647058823529412,
              "rgb(223,47,67)"
             ],
             [
              0.6274509803921569,
              "rgb(236,76,61)"
             ],
             [
              0.6901960784313725,
              "rgb(242,107,73)"
             ],
             [
              0.7529411764705882,
              "rgb(244,135,95)"
             ],
             [
              0.8156862745098039,
              "rgb(245,162,122)"
             ],
             [
              0.8784313725490196,
              "rgb(246,188,153)"
             ],
             [
              0.9411764705882353,
              "rgb(247,212,187)"
             ],
             [
              1,
              "rgb(250,234,220)"
             ]
            ],
            "type": "histogram2dcontour"
           }
          ],
          "mesh3d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "tickcolor": "rgb(36,36,36)",
             "ticklen": 8,
             "ticks": "outside",
             "tickwidth": 2
            },
            "type": "mesh3d"
           }
          ],
          "parcoords": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "tickcolor": "rgb(36,36,36)",
              "ticklen": 8,
              "ticks": "outside",
              "tickwidth": 2
             }
            },
            "type": "parcoords"
           }
          ],
          "pie": [
           {
            "automargin": true,
            "type": "pie"
           }
          ],
          "scatter": [
           {
            "fillpattern": {
             "fillmode": "overlay",
             "size": 10,
             "solidity": 0.2
            },
            "type": "scatter"
           }
          ],
          "scatter3d": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "tickcolor": "rgb(36,36,36)",
              "ticklen": 8,
              "ticks": "outside",
              "tickwidth": 2
             }
            },
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "tickcolor": "rgb(36,36,36)",
              "ticklen": 8,
              "ticks": "outside",
              "tickwidth": 2
             }
            },
            "type": "scatter3d"
           }
          ],
          "scattercarpet": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "tickcolor": "rgb(36,36,36)",
              "ticklen": 8,
              "ticks": "outside",
              "tickwidth": 2
             }
            },
            "type": "scattercarpet"
           }
          ],
          "scattergeo": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "tickcolor": "rgb(36,36,36)",
              "ticklen": 8,
              "ticks": "outside",
              "tickwidth": 2
             }
            },
            "type": "scattergeo"
           }
          ],
          "scattergl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "tickcolor": "rgb(36,36,36)",
              "ticklen": 8,
              "ticks": "outside",
              "tickwidth": 2
             }
            },
            "type": "scattergl"
           }
          ],
          "scattermapbox": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "tickcolor": "rgb(36,36,36)",
              "ticklen": 8,
              "ticks": "outside",
              "tickwidth": 2
             }
            },
            "type": "scattermapbox"
           }
          ],
          "scatterpolar": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "tickcolor": "rgb(36,36,36)",
              "ticklen": 8,
              "ticks": "outside",
              "tickwidth": 2
             }
            },
            "type": "scatterpolar"
           }
          ],
          "scatterpolargl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "tickcolor": "rgb(36,36,36)",
              "ticklen": 8,
              "ticks": "outside",
              "tickwidth": 2
             }
            },
            "type": "scatterpolargl"
           }
          ],
          "scatterternary": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "tickcolor": "rgb(36,36,36)",
              "ticklen": 8,
              "ticks": "outside",
              "tickwidth": 2
             }
            },
            "type": "scatterternary"
           }
          ],
          "surface": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "tickcolor": "rgb(36,36,36)",
             "ticklen": 8,
             "ticks": "outside",
             "tickwidth": 2
            },
            "colorscale": [
             [
              0,
              "rgb(2,4,25)"
             ],
             [
              0.06274509803921569,
              "rgb(24,15,41)"
             ],
             [
              0.12549019607843137,
              "rgb(47,23,57)"
             ],