From 9cb6feeefdf393fff903eb14ee62aad06fbdd17c Mon Sep 17 00:00:00 2001
From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Date: Mon, 19 Aug 2024 22:56:18 -0400
Subject: [PATCH] feat(visuals): option for sunburst
---
notebook/dashboard.ipynb | 2620 +++++++++++++++++++++++++++++++++++++-
1 file changed, 2579 insertions(+), 41 deletions(-)
diff --git a/notebook/dashboard.ipynb b/notebook/dashboard.ipynb
index da2a1b09..0c891940 100644
--- a/notebook/dashboard.ipynb
+++ b/notebook/dashboard.ipynb
@@ -89,6 +89,7 @@
"from github import Github, UnknownObjectException\n",
"import pandas as pd\n",
"import plotly.express as px\n",
+ "import plotly.graph_objects as go\n",
"import plotly.io as pio\n",
"import requests\n",
"\n",
@@ -511,30 +512,67 @@
"df_languages = pd.DataFrame(language_data)\n",
"\n",
"# Aggregate data by language and repo\n",
- "language_counts = df_languages.groupby(['language', 'repo']).agg({\n",
+ "language_counts_bytes = df_languages.groupby(['language', 'repo']).agg({\n",
" 'bytes_of_code': 'sum'\n",
"}).reset_index()\n",
"\n",
- "fig_treemap = px.treemap(\n",
- " language_counts,\n",
- " path=['language', 'repo'],\n",
- " values='bytes_of_code',\n",
- " title='Programming Languages by Bytes of Code (Treemap)',\n",
- " hover_data={'repo': True, 'bytes_of_code': True}\n",
- ")\n",
- "fig_treemap.show()\n",
+ "language_counts_repos = df_languages.groupby(['language', 'repo']).size().reset_index(name='repo_count')\n",
"\n",
- "# Programming Languages by Repo Count\n",
- "language_counts = df_languages.groupby(['language', 'repo']).size().reset_index(name='repo_count')\n",
+ "def create_language_figures(counts: pd.DataFrame, path_key: str, value_key: str):\n",
+ " _fig_treemap = px.treemap(\n",
+ " counts,\n",
+ " path=[path_key, 'repo'],\n",
+ " values=value_key,\n",
+ " )\n",
+ " _fig_sunburst = px.sunburst(\n",
+ " counts,\n",
+ " path=[path_key, 'repo'],\n",
+ " values=value_key,\n",
+ " )\n",
+ " return _fig_treemap, _fig_sunburst\n",
"\n",
- "fig_treemap = px.treemap(\n",
- " language_counts,\n",
- " path=['language', 'repo'],\n",
- " values='repo_count',\n",
- " title='Programming Languages by Repo Count (Treemap)',\n",
- " hover_data={'repo_count': True}\n",
- ")\n",
- "fig_treemap.show()"
+ "# List of tuples containing the data and titles for each figure\n",
+ "figures_data = [\n",
+ " (language_counts_bytes, 'language', 'bytes_of_code', 'Programming Languages by Bytes of Code'),\n",
+ " (language_counts_repos, 'language', 'repo_count', 'Programming Languages by Repo Count')\n",
+ "]\n",
+ "\n",
+ "# Loop through the list to create figures and add traces\n",
+ "for _counts, _path_key, value_key, title in figures_data:\n",
+ " fig_treemap, fig_sunburst = create_language_figures(counts=_counts, path_key=_path_key, value_key=value_key)\n",
+ "\n",
+ " fig = go.Figure()\n",
+ " fig.add_trace(fig_treemap.data[0])\n",
+ " fig.add_trace(fig_sunburst.data[0])\n",
+ " fig.data[1].visible = False\n",
+ "\n",
+ " fig.update_layout(\n",
+ " title=title,\n",
+ " updatemenus=[\n",
+ " {\n",
+ " \"buttons\": [\n",
+ " {\n",
+ " \"label\": \"Treemap\",\n",
+ " \"method\": \"update\",\n",
+ " \"args\": [\n",
+ " {\"visible\": [True, False]},\n",
+ " ],\n",
+ " },\n",
+ " {\n",
+ " \"label\": \"Sunburst\",\n",
+ " \"method\": \"update\",\n",
+ " \"args\": [\n",
+ " {\"visible\": [False, True]},\n",
+ " ],\n",
+ " },\n",
+ " ],\n",
+ " \"direction\": \"down\",\n",
+ " \"showactive\": True,\n",
+ " }\n",
+ " ]\n",
+ " )\n",
+ "\n",
+ " fig.show()"
],
"id": "20e09d93eda0478a",
"outputs": [],
@@ -547,7 +585,12 @@
"id": "a520a320cd823874"
},
{
- "metadata": {},
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-08-20T02:58:06.219404Z",
+ "start_time": "2024-08-20T02:58:06.066344Z"
+ }
+ },
"cell_type": "code",
"source": [
"# Docs\n",
@@ -563,33 +606,2528 @@
"\n",
"df_docs = pd.DataFrame(docs_data)\n",
"\n",
- "# Aggregate data by has_readme and repo\n",
+ "# Aggregate data by has_readme/has_readthedocs and repo\n",
"readme_counts = df_docs.groupby(['has_readme', 'repo']).size().reset_index(name='repo_count')\n",
+ "readthedocs_counts = df_docs.groupby(['has_readthedocs', 'repo']).size().reset_index(name='repo_count')\n",
"\n",
- "# Visualize the data using a treemap\n",
- "fig_treemap_readme = px.treemap(\n",
- " readme_counts,\n",
- " path=['has_readme', 'repo'],\n",
- " values='repo_count',\n",
- " title='Has README file',\n",
- ")\n",
- "fig_treemap_readme.show()\n",
+ "def create_figures(counts: pd.DataFrame, path_key: str):\n",
+ " _fig_treemap = px.treemap(\n",
+ " counts,\n",
+ " path=[path_key, 'repo'],\n",
+ " values='repo_count',\n",
+ " )\n",
+ " _fig_sunburst = px.sunburst(\n",
+ " counts,\n",
+ " path=[path_key, 'repo'],\n",
+ " values='repo_count',\n",
+ " )\n",
+ " return _fig_treemap, _fig_sunburst\n",
"\n",
- "# Aggregate data by has_readthedocs and repo\n",
- "readthedocs_counts = df_docs.groupby(['has_readthedocs', 'repo']).size().reset_index(name='repo_count')\n",
+ "# List of tuples containing the data and titles for each figure\n",
+ "figures_data = [\n",
+ " (readme_counts, 'has_readme', 'Has README file'),\n",
+ " (readthedocs_counts, 'has_readthedocs', 'Uses ReadTheDocs')\n",
+ "]\n",
"\n",
- "# Visualize the data using a treemap\n",
- "fig_treemap_readthedocs = px.treemap(\n",
- " readthedocs_counts,\n",
- " path=['has_readthedocs', 'repo'],\n",
- " values='repo_count',\n",
- " title='Uses ReadTheDocs',\n",
- ")\n",
- "fig_treemap_readthedocs.show()"
+ "# Loop through the list to create figures and add traces\n",
+ "for _counts, _path_key, title in figures_data:\n",
+ " fig_treemap, fig_sunburst = create_figures(counts=_counts, path_key=_path_key)\n",
+ "\n",
+ " fig = go.Figure()\n",
+ " fig.add_trace(fig_treemap.data[0])\n",
+ " fig.add_trace(fig_sunburst.data[0])\n",
+ " fig.data[1].visible = False\n",
+ "\n",
+ " fig.update_layout(\n",
+ " title=title,\n",
+ " updatemenus=[\n",
+ " {\n",
+ " \"buttons\": [\n",
+ " {\n",
+ " \"label\": \"Treemap\",\n",
+ " \"method\": \"update\",\n",
+ " \"args\": [{\"visible\": [True, False]}],\n",
+ " },\n",
+ " {\n",
+ " \"label\": \"Sunburst\",\n",
+ " \"method\": \"update\",\n",
+ " \"args\": [{\"visible\": [False, True]}],\n",
+ " },\n",
+ " ],\n",
+ " \"direction\": \"down\",\n",
+ " \"showactive\": True,\n",
+ " }\n",
+ " ]\n",
+ " )\n",
+ "\n",
+ " fig.show()"
],
"id": "ec43a8fd7f9d49bb",
- "outputs": [],
- "execution_count": null
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "data": [
+ {
+ "branchvalues": "total",
+ "domain": {
+ "x": [
+ 0.0,
+ 1.0
+ ],
+ "y": [
+ 0.0,
+ 1.0
+ ]
+ },
+ "hovertemplate": "labels=%{label}
repo_count=%{value}
parent=%{parent}
id=%{id}",
+ "ids": [
+ "True/.github",
+ "True/GSMS",
+ "True/LizardByte.github.io",
+ "True/RetroArcher",
+ "True/Sunshine",
+ "True/Themerr-jellyfin",
+ "True/Themerr-kodi",
+ "True/Themerr-plex",
+ "True/ThemerrDB",
+ "True/Virtual-Gamepad-Emulation-Bus",
+ "True/Virtual-Gamepad-Emulation-Client",
+ "True/Virtual-Gamepad-Emulation-dotnet",
+ "True/awesome-sunshine",
+ "False/build-deps",
+ "True/create-release-action",
+ "True/dashboard",
+ "False/db",
+ "True/doxyconfig",
+ "True/homebrew-homebrew",
+ "True/homebrew-release-action",
+ "True/jellyfin-plugin-repo",
+ "True/libdisplaydevice",
+ "True/nvapi-open-source-sdk",
+ "True/pacman-repo",
+ "True/setup-python-action",
+ "True/setup-release-action",
+ "True/shared-web",
+ "True/support-bot",
+ "True/support-bot-commands",
+ "True/template-base",
+ "True/tray",
+ "False/uno",
+ "True/update-changelog-action",
+ "False",
+ "True"
+ ],
+ "labels": [
+ ".github",
+ "GSMS",
+ "LizardByte.github.io",
+ "RetroArcher",
+ "Sunshine",
+ "Themerr-jellyfin",
+ "Themerr-kodi",
+ "Themerr-plex",
+ "ThemerrDB",
+ "Virtual-Gamepad-Emulation-Bus",
+ "Virtual-Gamepad-Emulation-Client",
+ "Virtual-Gamepad-Emulation-dotnet",
+ "awesome-sunshine",
+ "build-deps",
+ "create-release-action",
+ "dashboard",
+ "db",
+ "doxyconfig",
+ "homebrew-homebrew",
+ "homebrew-release-action",
+ "jellyfin-plugin-repo",
+ "libdisplaydevice",
+ "nvapi-open-source-sdk",
+ "pacman-repo",
+ "setup-python-action",
+ "setup-release-action",
+ "shared-web",
+ "support-bot",
+ "support-bot-commands",
+ "template-base",
+ "tray",
+ "uno",
+ "update-changelog-action",
+ "False",
+ "True"
+ ],
+ "name": "",
+ "parents": [
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "False",
+ "True",
+ "True",
+ "False",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "False",
+ "True",
+ "",
+ ""
+ ],
+ "values": [
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 3,
+ 30
+ ],
+ "type": "treemap"
+ },
+ {
+ "branchvalues": "total",
+ "domain": {
+ "x": [
+ 0.0,
+ 1.0
+ ],
+ "y": [
+ 0.0,
+ 1.0
+ ]
+ },
+ "hovertemplate": "labels=%{label}
repo_count=%{value}
parent=%{parent}
id=%{id}",
+ "ids": [
+ "True/.github",
+ "True/GSMS",
+ "True/LizardByte.github.io",
+ "True/RetroArcher",
+ "True/Sunshine",
+ "True/Themerr-jellyfin",
+ "True/Themerr-kodi",
+ "True/Themerr-plex",
+ "True/ThemerrDB",
+ "True/Virtual-Gamepad-Emulation-Bus",
+ "True/Virtual-Gamepad-Emulation-Client",
+ "True/Virtual-Gamepad-Emulation-dotnet",
+ "True/awesome-sunshine",
+ "False/build-deps",
+ "True/create-release-action",
+ "True/dashboard",
+ "False/db",
+ "True/doxyconfig",
+ "True/homebrew-homebrew",
+ "True/homebrew-release-action",
+ "True/jellyfin-plugin-repo",
+ "True/libdisplaydevice",
+ "True/nvapi-open-source-sdk",
+ "True/pacman-repo",
+ "True/setup-python-action",
+ "True/setup-release-action",
+ "True/shared-web",
+ "True/support-bot",
+ "True/support-bot-commands",
+ "True/template-base",
+ "True/tray",
+ "False/uno",
+ "True/update-changelog-action",
+ "False",
+ "True"
+ ],
+ "labels": [
+ ".github",
+ "GSMS",
+ "LizardByte.github.io",
+ "RetroArcher",
+ "Sunshine",
+ "Themerr-jellyfin",
+ "Themerr-kodi",
+ "Themerr-plex",
+ "ThemerrDB",
+ "Virtual-Gamepad-Emulation-Bus",
+ "Virtual-Gamepad-Emulation-Client",
+ "Virtual-Gamepad-Emulation-dotnet",
+ "awesome-sunshine",
+ "build-deps",
+ "create-release-action",
+ "dashboard",
+ "db",
+ "doxyconfig",
+ "homebrew-homebrew",
+ "homebrew-release-action",
+ "jellyfin-plugin-repo",
+ "libdisplaydevice",
+ "nvapi-open-source-sdk",
+ "pacman-repo",
+ "setup-python-action",
+ "setup-release-action",
+ "shared-web",
+ "support-bot",
+ "support-bot-commands",
+ "template-base",
+ "tray",
+ "uno",
+ "update-changelog-action",
+ "False",
+ "True"
+ ],
+ "name": "",
+ "parents": [
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "False",
+ "True",
+ "True",
+ "False",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "False",
+ "True",
+ "",
+ ""
+ ],
+ "values": [
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 3,
+ 30
+ ],
+ "type": "sunburst",
+ "visible": false
+ }
+ ],
+ "layout": {
+ "template": {
+ "data": {
+ "histogram2dcontour": [
+ {
+ "type": "histogram2dcontour",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "choropleth": [
+ {
+ "type": "choropleth",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "histogram2d": [
+ {
+ "type": "histogram2d",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "heatmap": [
+ {
+ "type": "heatmap",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "heatmapgl": [
+ {
+ "type": "heatmapgl",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "contourcarpet": [
+ {
+ "type": "contourcarpet",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "contour": [
+ {
+ "type": "contour",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "surface": [
+ {
+ "type": "surface",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "mesh3d": [
+ {
+ "type": "mesh3d",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "scatter": [
+ {
+ "marker": {
+ "line": {
+ "color": "#283442"
+ }
+ },
+ "type": "scatter"
+ }
+ ],
+ "parcoords": [
+ {
+ "type": "parcoords",
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "type": "scatterpolargl",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "bar": [
+ {
+ "error_x": {
+ "color": "#f2f5fa"
+ },
+ "error_y": {
+ "color": "#f2f5fa"
+ },
+ "marker": {
+ "line": {
+ "color": "rgb(17,17,17)",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "scattergeo": [
+ {
+ "type": "scattergeo",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterpolar": [
+ {
+ "type": "scatterpolar",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "line": {
+ "color": "#283442"
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scatter3d": [
+ {
+ "type": "scatter3d",
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scattermapbox": [
+ {
+ "type": "scattermapbox",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterternary": [
+ {
+ "type": "scatterternary",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scattercarpet": [
+ {
+ "type": "scattercarpet",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#A2B1C6",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "minorgridcolor": "#506784",
+ "startlinecolor": "#A2B1C6"
+ },
+ "baxis": {
+ "endlinecolor": "#A2B1C6",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "minorgridcolor": "#506784",
+ "startlinecolor": "#A2B1C6"
+ },
+ "type": "carpet"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#506784"
+ },
+ "line": {
+ "color": "rgb(17,17,17)"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#2a3f5f"
+ },
+ "line": {
+ "color": "rgb(17,17,17)"
+ }
+ },
+ "type": "table"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "rgb(17,17,17)",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ]
+ },
+ "layout": {
+ "autotypenumbers": "strict",
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#f2f5fa"
+ },
+ "hovermode": "closest",
+ "hoverlabel": {
+ "align": "left"
+ },
+ "paper_bgcolor": "rgb(17,17,17)",
+ "plot_bgcolor": "rgb(17,17,17)",
+ "polar": {
+ "bgcolor": "rgb(17,17,17)",
+ "angularaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "radialaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ }
+ },
+ "ternary": {
+ "bgcolor": "rgb(17,17,17)",
+ "aaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "caxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ }
+ },
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "sequential": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ]
+ },
+ "xaxis": {
+ "gridcolor": "#283442",
+ "linecolor": "#506784",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "#283442",
+ "automargin": true,
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "gridcolor": "#283442",
+ "linecolor": "#506784",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "#283442",
+ "automargin": true,
+ "zerolinewidth": 2
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
+ },
+ "yaxis": {
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
+ },
+ "zaxis": {
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#f2f5fa"
+ }
+ },
+ "annotationdefaults": {
+ "arrowcolor": "#f2f5fa",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "geo": {
+ "bgcolor": "rgb(17,17,17)",
+ "landcolor": "rgb(17,17,17)",
+ "subunitcolor": "#506784",
+ "showland": true,
+ "showlakes": true,
+ "lakecolor": "rgb(17,17,17)"
+ },
+ "title": {
+ "x": 0.05
+ },
+ "updatemenudefaults": {
+ "bgcolor": "#506784",
+ "borderwidth": 0
+ },
+ "sliderdefaults": {
+ "bgcolor": "#C8D4E3",
+ "borderwidth": 1,
+ "bordercolor": "rgb(17,17,17)",
+ "tickwidth": 0
+ },
+ "mapbox": {
+ "style": "dark"
+ }
+ }
+ },
+ "title": {
+ "text": "Has README file"
+ },
+ "updatemenus": [
+ {
+ "buttons": [
+ {
+ "args": [
+ {
+ "visible": [
+ true,
+ false
+ ]
+ }
+ ],
+ "label": "Treemap",
+ "method": "update"
+ },
+ {
+ "args": [
+ {
+ "visible": [
+ false,
+ true
+ ]
+ }
+ ],
+ "label": "Sunburst",
+ "method": "update"
+ }
+ ],
+ "direction": "down",
+ "showactive": true
+ }
+ ]
+ },
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ }
+ },
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "data": [
+ {
+ "branchvalues": "total",
+ "domain": {
+ "x": [
+ 0.0,
+ 1.0
+ ],
+ "y": [
+ 0.0,
+ 1.0
+ ]
+ },
+ "hovertemplate": "labels=%{label}
repo_count=%{value}
parent=%{parent}
id=%{id}",
+ "ids": [
+ "True/.github",
+ "False/GSMS",
+ "False/LizardByte.github.io",
+ "True/RetroArcher",
+ "True/Sunshine",
+ "True/Themerr-jellyfin",
+ "True/Themerr-kodi",
+ "True/Themerr-plex",
+ "False/ThemerrDB",
+ "False/Virtual-Gamepad-Emulation-Bus",
+ "False/Virtual-Gamepad-Emulation-Client",
+ "False/Virtual-Gamepad-Emulation-dotnet",
+ "False/awesome-sunshine",
+ "False/build-deps",
+ "False/create-release-action",
+ "False/dashboard",
+ "False/db",
+ "True/doxyconfig",
+ "False/homebrew-homebrew",
+ "False/homebrew-release-action",
+ "False/jellyfin-plugin-repo",
+ "True/libdisplaydevice",
+ "False/nvapi-open-source-sdk",
+ "False/pacman-repo",
+ "False/setup-python-action",
+ "False/setup-release-action",
+ "False/shared-web",
+ "False/support-bot",
+ "False/support-bot-commands",
+ "False/template-base",
+ "True/tray",
+ "False/uno",
+ "False/update-changelog-action",
+ "False",
+ "True"
+ ],
+ "labels": [
+ ".github",
+ "GSMS",
+ "LizardByte.github.io",
+ "RetroArcher",
+ "Sunshine",
+ "Themerr-jellyfin",
+ "Themerr-kodi",
+ "Themerr-plex",
+ "ThemerrDB",
+ "Virtual-Gamepad-Emulation-Bus",
+ "Virtual-Gamepad-Emulation-Client",
+ "Virtual-Gamepad-Emulation-dotnet",
+ "awesome-sunshine",
+ "build-deps",
+ "create-release-action",
+ "dashboard",
+ "db",
+ "doxyconfig",
+ "homebrew-homebrew",
+ "homebrew-release-action",
+ "jellyfin-plugin-repo",
+ "libdisplaydevice",
+ "nvapi-open-source-sdk",
+ "pacman-repo",
+ "setup-python-action",
+ "setup-release-action",
+ "shared-web",
+ "support-bot",
+ "support-bot-commands",
+ "template-base",
+ "tray",
+ "uno",
+ "update-changelog-action",
+ "False",
+ "True"
+ ],
+ "name": "",
+ "parents": [
+ "True",
+ "False",
+ "False",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "True",
+ "False",
+ "False",
+ "False",
+ "True",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "True",
+ "False",
+ "False",
+ "",
+ ""
+ ],
+ "values": [
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 24,
+ 9
+ ],
+ "type": "treemap"
+ },
+ {
+ "branchvalues": "total",
+ "domain": {
+ "x": [
+ 0.0,
+ 1.0
+ ],
+ "y": [
+ 0.0,
+ 1.0
+ ]
+ },
+ "hovertemplate": "labels=%{label}
repo_count=%{value}
parent=%{parent}
id=%{id}",
+ "ids": [
+ "True/.github",
+ "False/GSMS",
+ "False/LizardByte.github.io",
+ "True/RetroArcher",
+ "True/Sunshine",
+ "True/Themerr-jellyfin",
+ "True/Themerr-kodi",
+ "True/Themerr-plex",
+ "False/ThemerrDB",
+ "False/Virtual-Gamepad-Emulation-Bus",
+ "False/Virtual-Gamepad-Emulation-Client",
+ "False/Virtual-Gamepad-Emulation-dotnet",
+ "False/awesome-sunshine",
+ "False/build-deps",
+ "False/create-release-action",
+ "False/dashboard",
+ "False/db",
+ "True/doxyconfig",
+ "False/homebrew-homebrew",
+ "False/homebrew-release-action",
+ "False/jellyfin-plugin-repo",
+ "True/libdisplaydevice",
+ "False/nvapi-open-source-sdk",
+ "False/pacman-repo",
+ "False/setup-python-action",
+ "False/setup-release-action",
+ "False/shared-web",
+ "False/support-bot",
+ "False/support-bot-commands",
+ "False/template-base",
+ "True/tray",
+ "False/uno",
+ "False/update-changelog-action",
+ "False",
+ "True"
+ ],
+ "labels": [
+ ".github",
+ "GSMS",
+ "LizardByte.github.io",
+ "RetroArcher",
+ "Sunshine",
+ "Themerr-jellyfin",
+ "Themerr-kodi",
+ "Themerr-plex",
+ "ThemerrDB",
+ "Virtual-Gamepad-Emulation-Bus",
+ "Virtual-Gamepad-Emulation-Client",
+ "Virtual-Gamepad-Emulation-dotnet",
+ "awesome-sunshine",
+ "build-deps",
+ "create-release-action",
+ "dashboard",
+ "db",
+ "doxyconfig",
+ "homebrew-homebrew",
+ "homebrew-release-action",
+ "jellyfin-plugin-repo",
+ "libdisplaydevice",
+ "nvapi-open-source-sdk",
+ "pacman-repo",
+ "setup-python-action",
+ "setup-release-action",
+ "shared-web",
+ "support-bot",
+ "support-bot-commands",
+ "template-base",
+ "tray",
+ "uno",
+ "update-changelog-action",
+ "False",
+ "True"
+ ],
+ "name": "",
+ "parents": [
+ "True",
+ "False",
+ "False",
+ "True",
+ "True",
+ "True",
+ "True",
+ "True",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "True",
+ "False",
+ "False",
+ "False",
+ "True",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "False",
+ "True",
+ "False",
+ "False",
+ "",
+ ""
+ ],
+ "values": [
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 24,
+ 9
+ ],
+ "type": "sunburst",
+ "visible": false
+ }
+ ],
+ "layout": {
+ "template": {
+ "data": {
+ "histogram2dcontour": [
+ {
+ "type": "histogram2dcontour",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "choropleth": [
+ {
+ "type": "choropleth",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "histogram2d": [
+ {
+ "type": "histogram2d",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "heatmap": [
+ {
+ "type": "heatmap",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "heatmapgl": [
+ {
+ "type": "heatmapgl",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "contourcarpet": [
+ {
+ "type": "contourcarpet",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "contour": [
+ {
+ "type": "contour",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "surface": [
+ {
+ "type": "surface",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "mesh3d": [
+ {
+ "type": "mesh3d",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "scatter": [
+ {
+ "marker": {
+ "line": {
+ "color": "#283442"
+ }
+ },
+ "type": "scatter"
+ }
+ ],
+ "parcoords": [
+ {
+ "type": "parcoords",
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "type": "scatterpolargl",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "bar": [
+ {
+ "error_x": {
+ "color": "#f2f5fa"
+ },
+ "error_y": {
+ "color": "#f2f5fa"
+ },
+ "marker": {
+ "line": {
+ "color": "rgb(17,17,17)",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "scattergeo": [
+ {
+ "type": "scattergeo",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterpolar": [
+ {
+ "type": "scatterpolar",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "line": {
+ "color": "#283442"
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scatter3d": [
+ {
+ "type": "scatter3d",
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scattermapbox": [
+ {
+ "type": "scattermapbox",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterternary": [
+ {
+ "type": "scatterternary",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scattercarpet": [
+ {
+ "type": "scattercarpet",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#A2B1C6",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "minorgridcolor": "#506784",
+ "startlinecolor": "#A2B1C6"
+ },
+ "baxis": {
+ "endlinecolor": "#A2B1C6",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "minorgridcolor": "#506784",
+ "startlinecolor": "#A2B1C6"
+ },
+ "type": "carpet"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#506784"
+ },
+ "line": {
+ "color": "rgb(17,17,17)"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#2a3f5f"
+ },
+ "line": {
+ "color": "rgb(17,17,17)"
+ }
+ },
+ "type": "table"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "rgb(17,17,17)",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ]
+ },
+ "layout": {
+ "autotypenumbers": "strict",
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#f2f5fa"
+ },
+ "hovermode": "closest",
+ "hoverlabel": {
+ "align": "left"
+ },
+ "paper_bgcolor": "rgb(17,17,17)",
+ "plot_bgcolor": "rgb(17,17,17)",
+ "polar": {
+ "bgcolor": "rgb(17,17,17)",
+ "angularaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "radialaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ }
+ },
+ "ternary": {
+ "bgcolor": "rgb(17,17,17)",
+ "aaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "caxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ }
+ },
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "sequential": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ]
+ },
+ "xaxis": {
+ "gridcolor": "#283442",
+ "linecolor": "#506784",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "#283442",
+ "automargin": true,
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "gridcolor": "#283442",
+ "linecolor": "#506784",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "#283442",
+ "automargin": true,
+ "zerolinewidth": 2
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
+ },
+ "yaxis": {
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
+ },
+ "zaxis": {
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#f2f5fa"
+ }
+ },
+ "annotationdefaults": {
+ "arrowcolor": "#f2f5fa",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "geo": {
+ "bgcolor": "rgb(17,17,17)",
+ "landcolor": "rgb(17,17,17)",
+ "subunitcolor": "#506784",
+ "showland": true,
+ "showlakes": true,
+ "lakecolor": "rgb(17,17,17)"
+ },
+ "title": {
+ "x": 0.05
+ },
+ "updatemenudefaults": {
+ "bgcolor": "#506784",
+ "borderwidth": 0
+ },
+ "sliderdefaults": {
+ "bgcolor": "#C8D4E3",
+ "borderwidth": 1,
+ "bordercolor": "rgb(17,17,17)",
+ "tickwidth": 0
+ },
+ "mapbox": {
+ "style": "dark"
+ }
+ }
+ },
+ "title": {
+ "text": "Uses ReadTheDocs"
+ },
+ "updatemenus": [
+ {
+ "buttons": [
+ {
+ "args": [
+ {
+ "visible": [
+ true,
+ false
+ ]
+ }
+ ],
+ "label": "Treemap",
+ "method": "update"
+ },
+ {
+ "args": [
+ {
+ "visible": [
+ false,
+ true
+ ]
+ }
+ ],
+ "label": "Sunburst",
+ "method": "update"
+ }
+ ],
+ "direction": "down",
+ "showactive": true
+ }
+ ]
+ },
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ }
+ },
+ "text/html": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "execution_count": 188
}
],
"metadata": {