diff --git a/book/plot.ipynb b/book/plot.ipynb
index e89656e..2eddfff 100644
--- a/book/plot.ipynb
+++ b/book/plot.ipynb
@@ -20,35 +20,6 @@
]
},
"outputs": [
- {
- "data": {
- "text/html": [
- " \n",
- " "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
{
"data": {
"application/vnd.plotly.v1+json": {
@@ -95,26 +66,10 @@
"2025-02-21"
],
"xaxis": "x",
- "y": [
- 0,
- 0,
- 0,
- 82,
- 106,
- 108,
- 112,
- 132,
- 139,
- 152,
- 160,
- 162,
- 170,
- 184,
- 189,
- 197,
- 211,
- 220
- ],
+ "y": {
+ "bdata": "AAAAAAAAUQBpAGsAbwCDAIoAlwCfAKEAqQC3ALwAxADSANsA",
+ "dtype": "i2"
+ },
"yaxis": "y"
}
],
@@ -318,57 +273,6 @@
"type": "heatmap"
}
],
- "heatmapgl": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 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,
- "#f0f921"
- ]
- ],
- "type": "heatmapgl"
- }
- ],
"histogram": [
{
"marker": {
@@ -569,6 +473,17 @@
"type": "scattergl"
}
],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
"scattermapbox": [
{
"marker": {
@@ -973,41 +888,14 @@
],
"range": [
0,
- 220
+ 219
],
"title": {
"text": ""
}
}
}
- },
- "text/html": [
- "
"
- ]
+ }
},
"metadata": {},
"output_type": "display_data"
@@ -1124,82 +1012,86 @@
"customdata": [
[
1,
- "Europe"
+ "Africa"
],
[
- 4,
- "Europe"
+ 1,
+ "Africa"
],
[
1,
- "Europe"
+ "Africa"
+ ],
+ [
+ 1,
+ "Asia"
],
[
2,
- "North America"
+ "Asia"
],
[
1,
- "Europe"
+ "Asia"
],
[
- 3,
- "Europe"
+ 2,
+ "Asia"
],
[
- 5,
- "North America"
+ 1,
+ "Asia"
],
[
1,
- "North America"
+ "Asia"
],
[
- 1,
- "North America"
+ 9,
+ "Asia"
],
[
1,
- "Europe"
+ "Asia"
],
[
1,
- "Europe"
+ "Asia"
],
[
1,
- "Europe"
+ "Asia"
],
[
1,
- "Oceania"
+ "Asia"
],
[
- 5,
- "Europe"
+ 1,
+ "Asia"
],
[
- 9,
- "North America"
+ 1,
+ "Asia"
],
[
- 8,
- "North America"
+ 1,
+ "Asia"
],
[
- 1,
+ 2,
"Asia"
],
[
1,
- "North America"
+ "Asia"
],
[
- 3,
+ 6,
"Europe"
],
[
- 1,
+ 6,
"Europe"
],
[
@@ -1207,7 +1099,7 @@
"Europe"
],
[
- 1,
+ 22,
"Europe"
],
[
@@ -1216,26 +1108,26 @@
],
[
1,
- "North America"
+ "Europe"
],
[
1,
- "Asia"
+ "Europe"
],
[
- 2,
- "North America"
+ 1,
+ "Europe"
],
[
1,
"Europe"
],
[
- 1,
+ 5,
"Europe"
],
[
- 1,
+ 2,
"Europe"
],
[
@@ -1243,35 +1135,35 @@
"Europe"
],
[
- 3,
+ 1,
"Europe"
],
[
- 7,
+ 12,
"Europe"
],
[
- 1,
- "North America"
+ 2,
+ "Europe"
],
[
- 8,
+ 141,
"Europe"
],
[
- 1,
- "Asia"
+ 54,
+ "Europe"
],
[
- 1,
- "Asia"
+ 2,
+ "Europe"
],
[
1,
"Europe"
],
[
- 1,
+ 14,
"Europe"
],
[
@@ -1280,7 +1172,7 @@
],
[
1,
- "North America"
+ "Europe"
],
[
5,
@@ -1288,30 +1180,30 @@
],
[
1,
- "North America"
+ "Europe"
],
[
1,
"Europe"
],
[
- 2,
- "North America"
+ 3,
+ "Europe"
],
[
- 1,
- "North America"
+ 13,
+ "Europe"
],
[
1,
"Europe"
],
[
- 2,
+ 1,
"Europe"
],
[
- 2,
+ 16,
"Europe"
],
[
@@ -1319,39 +1211,35 @@
"Europe"
],
[
- 3,
+ 5,
"Europe"
],
[
- 1,
+ 3,
"Europe"
],
[
- 1,
+ 5,
"Europe"
],
- [
- 2,
- "North America"
- ],
[
1,
"Europe"
],
[
- 4,
+ 3,
"Europe"
],
[
1,
- "Asia"
+ "Europe"
],
[
- 2,
+ 3,
"Europe"
],
[
- 1,
+ 2,
"Europe"
],
[
@@ -1363,11 +1251,11 @@
"Europe"
],
[
- 2,
+ 1,
"Europe"
],
[
- 2,
+ 1,
"Europe"
],
[
@@ -1375,12 +1263,12 @@
"Europe"
],
[
- 4,
+ 5,
"Europe"
],
[
- 4,
- "North America"
+ 8,
+ "Europe"
],
[
1,
@@ -1391,15 +1279,15 @@
"Europe"
],
[
- 3,
- "North America"
+ 1,
+ "Europe"
],
[
- 5,
- "North America"
+ 3,
+ "Europe"
],
[
- 1,
+ 7,
"Europe"
],
[
@@ -1408,7 +1296,7 @@
],
[
1,
- "Asia"
+ "Europe"
],
[
1,
@@ -1416,58 +1304,58 @@
],
[
1,
- "North America"
+ "Europe"
],
[
- 1,
+ 3,
"Europe"
],
[
2,
- "North America"
+ "Europe"
],
[
1,
"Europe"
],
[
- 6,
+ 3,
"Europe"
],
[
1,
- "North America"
+ "Europe"
],
[
- 4,
+ 1,
"Europe"
],
[
1,
- "Oceania"
+ "Europe"
],
[
- 3,
+ 1,
"Europe"
],
[
2,
- "Asia"
+ "Europe"
],
[
- 1,
- "North America"
+ 4,
+ "Europe"
],
[
- 1,
- "North America"
+ 4,
+ "Europe"
],
[
3,
- "North America"
+ "Europe"
],
[
- 23,
+ 1,
"Europe"
],
[
@@ -1479,24 +1367,24 @@
"Europe"
],
[
- 1,
- "North America"
+ 4,
+ "Europe"
],
[
1,
- "Africa"
+ "Europe"
],
[
1,
- "North America"
+ "Europe"
],
[
1,
- "North America"
+ "Europe"
],
[
1,
- "North America"
+ "Europe"
],
[
1,
@@ -1504,15 +1392,15 @@
],
[
1,
- "North America"
+ "Europe"
],
[
- 1,
+ 2,
"Europe"
],
[
1,
- "North America"
+ "Europe"
],
[
1,
@@ -1520,155 +1408,155 @@
],
[
1,
- "Asia"
+ "Europe"
+ ],
+ [
+ 59,
+ "North America"
],
[
6,
- "Europe"
+ "North America"
],
[
1,
- "Europe"
+ "North America"
],
[
1,
- "Oceania"
+ "North America"
],
[
1,
- "Europe"
+ "North America"
],
[
1,
- "Asia"
+ "North America"
],
[
2,
- "Europe"
- ],
- [
- 6,
"North America"
],
- [
- 3,
- "Europe"
- ],
[
5,
- "Europe"
+ "North America"
],
[
- 12,
- "Europe"
+ 1,
+ "North America"
],
[
- 16,
- "Europe"
+ 2,
+ "North America"
],
[
1,
- "Europe"
+ "North America"
],
[
- 1,
- "Europe"
+ 2,
+ "North America"
],
[
- 2,
- "Asia"
+ 5,
+ "North America"
],
[
- 1,
- "Asia"
+ 4,
+ "North America"
],
[
- 2,
- "Asia"
+ 65,
+ "North America"
],
[
- 13,
- "Europe"
+ 8,
+ "North America"
],
[
1,
- "Asia"
+ "North America"
],
[
- 3,
- "Europe"
+ 9,
+ "North America"
],
[
- 1,
- "Africa"
+ 2,
+ "North America"
],
[
- 5,
- "Europe"
+ 1,
+ "North America"
],
[
1,
- "Oceania"
+ "North America"
],
[
- 1,
- "Asia"
+ 3,
+ "North America"
],
[
1,
- "Europe"
+ "North America"
],
[
- 5,
- "Europe"
+ 1,
+ "North America"
],
[
1,
- "Europe"
+ "North America"
],
[
1,
- "Asia"
+ "North America"
],
[
1,
- "Europe"
+ "North America"
],
[
- 15,
- "Europe"
+ 1,
+ "North America"
],
[
1,
- "Europe"
+ "North America"
],
[
2,
- "Europe"
+ "North America"
],
[
- 55,
- "Europe"
+ 1,
+ "North America"
],
[
- 59,
+ 1,
+ "North America"
+ ],
+ [
+ 3,
"North America"
],
[
1,
- "Africa"
+ "Oceania"
],
[
- 9,
- "Asia"
+ 1,
+ "Oceania"
],
[
- 143,
- "Europe"
+ 1,
+ "Oceania"
],
[
- 65,
- "North America"
+ 1,
+ "Oceania"
],
[
2,
@@ -1687,332 +1575,332 @@
},
"hovertemplate": "labels=%{label}
Registrations=%{customdata[0]:.0f}
parent=%{parent}
id=%{id}
Continent=%{customdata[1]}",
"ids": [
- "Europe/France/ASNR",
- "Europe/Spain/ATG Engineering S.L.",
- "Europe/France/Aix-Marseille University",
- "North America/United States/Argonne National Laboratory",
- "Europe/Hungary/C3D Engineering Ltd.",
- "Europe/France/CEA",
- "North America/United States/CFS",
- "North America/Canada/Canadian Nuclear Laboratories",
- "North America/United States/Center for Astrophysics | Harvard & Smithsonian",
- "Europe/Greece/National Technical University of Athens",
- "Europe/Russian Federation/NRNU MEPhI",
- "Europe/Russian Federation/NRC Kurchatov Institute",
- "Oceania/Australia/Meranti Research Laboratories",
- "Europe/Germany/Max Planck Institute for Plasma Physics",
- "North America/United States/Massachusetts Institute of Technology",
- "North America/United States/LBNL",
- "Asia/India/Lovely Professional University",
- "North America/United States/Lawrence Livermore National Lab",
- "Europe/Luxembourg/Next Step Fusion",
- "Europe/United Kingdom/Kyoto Fusioneering UK Ltd",
- "Europe/Denmark/Knudsen",
- "Europe/United Kingdom/Marathon Fusion Inc, The University of Bath",
- "Europe/Spain/Next Step Fusion",
- "North America/United States/PPPL",
+ "Africa/Morocco/The UM6P Vanguard Center",
+ "Africa/Morocco",
+ "Africa",
+ "Asia/Japan",
+ "Asia/Israel",
+ "Asia/Indonesia",
+ "Asia/India",
+ "Asia/Bangladesh",
+ "Asia/Pakistan",
+ "Asia",
+ "Asia/Singapore",
+ "Asia/Singapore/UOM",
"Asia/Bangladesh/NukeHub",
- "North America/United States/ORNL",
- "Europe/Sweden/KTH Royal Institute of Technology",
- "Europe/United Kingdom/Pasteur Labs",
- "Europe/Russian Federation/Peter the Great St.Petersburg Polytechnic University",
- "Europe/Belgium/Phd in nuclear physics (2007), currently a tech entrepreneur",
- "Europe/Italy/Politecnico di Milano",
- "Europe/Italy/Politecnico di Torino",
- "North America/United States/Princeton University",
- "Europe/Germany/Proxima Fusion",
- "Asia/Pakistan/Quaid e Awam University of Engineering Science and Technology Nawabshah",
+ "Asia/India/Lovely Professional University",
"Asia/India/Regional Institute of Education",
- "Europe/France/Renaissance Fusion",
+ "Asia/Pakistan/Quaid e Awam University of Engineering Science and Technology Nawabshah",
+ "Asia/Indonesia/Universitas Gadjah Mada",
+ "Asia/Israel/nT-Tao",
+ "Asia/Japan/EX-Fusion Inc.",
+ "Europe/United Kingdom/nTtau Digital LTD",
+ "Europe/United Kingdom/University of York",
+ "Europe/United Kingdom/University of Manchester",
+ "Europe/United Kingdom/UKAEA",
+ "Europe/United Kingdom/UK Industrial Fusion Solutions",
+ "Europe/United Kingdom/Tokamak Energy Ltd.",
+ "Europe/United Kingdom/Pasteur Labs",
"Europe/United Kingdom/Nuclear Institute",
- "Europe/Serbia/Institute of Physics Belgrade",
- "North America/Canada/Mercenary",
+ "Europe/United Kingdom/Kyoto Fusioneering UK Ltd",
"Europe/United Kingdom/Imperial College London",
- "North America/United States/Indiana University Bloomington",
+ "Europe/United Kingdom/IDOM UK Ltd",
+ "Europe/United Kingdom/Google DeepMind",
+ "Europe/United Kingdom/Marathon Fusion Inc, The University of Bath",
+ "Europe/France",
+ "Europe/Belgium",
+ "Europe",
+ "Europe/United Kingdom",
+ "Europe/Switzerland",
+ "Europe/Sweden",
+ "Europe/Spain",
+ "Europe/Slovenia",
+ "Europe/Serbia",
+ "Europe/Russian Federation",
+ "Europe/Austria",
+ "Europe/Poland",
+ "Europe/Luxembourg",
+ "Europe/Italy",
+ "Europe/Hungary",
+ "Europe/Greece",
+ "Europe/Germany",
+ "Europe/United Kingdom/First Light Fusion",
+ "Europe/Finland",
+ "Europe/Denmark",
+ "Europe/Netherlands",
"Europe/United Kingdom/Cerberus Nuclear",
- "North America/United States/Columbia University",
- "North America/United States/Cornell University",
- "Europe/Slovenia/Cosylab d.d.",
- "Europe/Netherlands/DIFFER",
- "Europe/Denmark/DTU",
+ "Europe/United Kingdom/Woodruff Scientific Ltd",
"Europe/Switzerland/EPFL",
- "Europe/Netherlands/Eindhoven University of Technology",
- "Europe/Finland/FS Dynamics",
- "Europe/United Kingdom/First Light Fusion",
- "North America/United States/Flatiron Institute",
- "Europe/Germany/Forschungszentrum Juelich",
- "Europe/Spain/Fusion for Energy",
- "Asia/Japan/EX-Fusion Inc.",
+ "Europe/France/CEA",
"Europe/France/Gen-F",
- "Europe/Germany/Gauss Fusion GmbH",
- "Europe/Russian Federation/ITER RF Domestic Agency",
- "Europe/France/ITER Organization",
- "Europe/United Kingdom/IDOM UK Ltd",
- "Europe/Spain/IDOM",
- "Europe/Austria/IAEA",
- "Europe/Spain/HI IBERIA",
- "North America/United States/Idaho National Laboratory",
- "Europe/United Kingdom/Google DeepMind",
- "Europe/Belgium/Ghent University",
- "North America/Canada/General Fusion Inc.",
- "North America/United States/General Atomics",
"Europe/France/Graneet",
+ "Europe/France/ITER Organization",
+ "Europe/France/Renaissance Fusion",
+ "Europe/Germany/Forschungszentrum Juelich",
+ "Europe/Germany/Gauss Fusion GmbH",
+ "Europe/Germany/Max Planck Institute for Plasma Physics",
+ "Europe/Germany/Proxima Fusion",
+ "Europe/France/Aix-Marseille University",
"Europe/Germany/Uni Stuttgart",
- "Asia/Indonesia/Universitas Gadjah Mada",
- "Europe/United Kingdom/University of Manchester",
- "North America/United States/University of Maryland",
+ "Europe/Hungary/C3D Engineering Ltd.",
+ "Europe/Italy/Politecnico di Milano",
+ "Europe/Italy/Politecnico di Torino",
+ "Europe/Italy/Sapienza University of Rome",
"Europe/Italy/University of Padua",
- "North America/United States/University of Rochester",
+ "Europe/Switzerland/SPC-EPFL",
"Europe/Italy/University of Rome \"Tor Vergata\" | ENEA Frascati Research Centre",
- "Europe/United Kingdom/University of York",
- "North America/United States/University of Tennessee",
+ "Europe/Luxembourg/Next Step Fusion",
+ "Europe/Netherlands/DIFFER",
+ "Europe/Greece/National Technical University of Athens",
+ "Europe/Netherlands/Eindhoven University of Technology",
+ "Europe/France/ASNR",
+ "Europe/Finland/FS Dynamics",
+ "Europe/Sweden/KTH Royal Institute of Technology",
+ "Europe/Spain/Next Step Fusion",
+ "Europe/Spain/IDOM",
+ "Europe/Spain/HI IBERIA",
+ "Europe/Spain/Fusion for Energy",
+ "Europe/Spain/ATG Engineering S.L.",
+ "Europe/Slovenia/Cosylab d.d.",
+ "Europe/Serbia/Institute of Physics Belgrade",
+ "Europe/Russian Federation/Rosatom, Institution \"Project Center ITER\"",
"Europe/Finland/VTT Technical Research Centre",
- "Oceania/New Zealand/Victoria University of Wellington",
- "Europe/United Kingdom/Woodruff Scientific Ltd",
- "Asia/Israel/nT-Tao",
- "North America/Canada/University of Saskatchewan",
+ "Europe/Russian Federation/Peter the Great St.Petersburg Polytechnic University",
+ "Europe/Russian Federation/NRC Kurchatov Institute",
+ "Europe/Austria/IAEA",
+ "Europe/Russian Federation/ITER RF Domestic Agency",
+ "Europe/Belgium/Ghent University",
+ "Europe/Belgium/Phd in nuclear physics (2007), currently a tech entrepreneur",
+ "Europe/Denmark/DTU",
+ "Europe/Denmark/Knudsen",
+ "Europe/Russian Federation/NRNU MEPhI",
+ "Europe/Poland/unaffiliated",
+ "North America/United States",
+ "North America/Canada",
"North America/United States/UW-Madison",
+ "North America/United States/Indiana University Bloomington",
+ "North America/Canada/Mercenary",
+ "North America/Canada/University of Saskatchewan",
+ "North America/United States/Argonne National Laboratory",
+ "North America/United States/CFS",
+ "North America/United States/Center for Astrophysics | Harvard & Smithsonian",
+ "North America/United States/Columbia University",
+ "North America/United States/Cornell University",
+ "North America/United States/Flatiron Institute",
+ "North America/United States/General Atomics",
+ "North America/United States/Idaho National Laboratory",
+ "North America",
+ "North America/United States/LBNL",
+ "North America/United States/Lawrence Livermore National Lab",
+ "North America/United States/Massachusetts Institute of Technology",
+ "North America/United States/ORNL",
+ "North America/United States/PPPL",
+ "North America/United States/Princeton University",
"North America/United States/Rensselaer Polytechnic Institute",
- "Europe/United Kingdom/UKAEA",
- "Europe/United Kingdom/UK Industrial Fusion Solutions",
- "Europe/United Kingdom/Tokamak Energy Ltd.",
- "North America/United States/Thea Energy",
- "Africa/Morocco/The UM6P Vanguard Center",
- "North America/United States/Texas A&M University",
- "North America/United States/TAE Technologies",
- "North America/United States/South Dakota School of Mines & Technology",
- "Europe/Italy/Sapienza University of Rome",
- "North America/United States/Sapientai LLC",
- "Europe/Switzerland/SPC-EPFL",
"North America/United States/Rutherford Energy Ventures",
- "Europe/Russian Federation/Rosatom, Institution \"Project Center ITER\"",
- "Asia/Singapore/UOM",
- "Europe/United Kingdom/nTtau Digital LTD",
- "Europe/Poland/unaffiliated",
+ "North America/United States/Sapientai LLC",
+ "North America/United States/South Dakota School of Mines & Technology",
+ "North America/United States/TAE Technologies",
+ "North America/United States/Texas A&M University",
+ "North America/United States/Thea Energy",
+ "North America/United States/University of Maryland",
+ "North America/United States/University of Rochester",
+ "North America/United States/University of Tennessee",
+ "North America/Canada/Canadian Nuclear Laboratories",
+ "North America/Canada/General Fusion Inc.",
+ "Oceania/Australia/Meranti Research Laboratories",
"Oceania/Australia",
- "Europe/Austria",
- "Asia/Bangladesh",
- "Europe/Belgium",
- "North America/Canada",
- "Europe/Denmark",
- "Europe/Finland",
- "Europe/France",
- "Europe/Germany",
- "Europe/Greece",
- "Europe/Hungary",
- "Asia/India",
- "Asia/Indonesia",
- "Asia/Israel",
- "Europe/Italy",
- "Asia/Japan",
- "Europe/Luxembourg",
- "Africa/Morocco",
- "Europe/Netherlands",
+ "Oceania/New Zealand/Victoria University of Wellington",
"Oceania/New Zealand",
- "Asia/Pakistan",
- "Europe/Poland",
- "Europe/Russian Federation",
- "Europe/Serbia",
- "Asia/Singapore",
- "Europe/Slovenia",
- "Europe/Spain",
- "Europe/Sweden",
- "Europe/Switzerland",
- "Europe/United Kingdom",
- "North America/United States",
- "Africa",
- "Asia",
- "Europe",
- "North America",
"Oceania"
],
"labels": [
- "ASNR",
- "ATG Engineering S.L.",
- "Aix-Marseille University",
- "Argonne National Laboratory",
- "C3D Engineering Ltd.",
- "CEA",
- "CFS",
- "Canadian Nuclear Laboratories",
- "Center for Astrophysics | Harvard & Smithsonian",
- "National Technical University of Athens",
- "NRNU MEPhI",
- "NRC Kurchatov Institute",
- "Meranti Research Laboratories",
- "Max Planck Institute for Plasma Physics",
- "Massachusetts Institute of Technology",
- "LBNL",
- "Lovely Professional University",
- "Lawrence Livermore National Lab",
- "Next Step Fusion",
- "Kyoto Fusioneering UK Ltd",
- "Knudsen",
- "Marathon Fusion Inc, The University of Bath",
- "Next Step Fusion",
- "PPPL",
+ "The UM6P Vanguard Center",
+ "Morocco",
+ "Africa",
+ "Japan",
+ "Israel",
+ "Indonesia",
+ "India",
+ "Bangladesh",
+ "Pakistan",
+ "Asia",
+ "Singapore",
+ "UOM",
"NukeHub",
- "ORNL",
- "KTH Royal Institute of Technology",
- "Pasteur Labs",
- "Peter the Great St.Petersburg Polytechnic University",
- "Phd in nuclear physics (2007), currently a tech entrepreneur",
- "Politecnico di Milano",
- "Politecnico di Torino",
- "Princeton University",
- "Proxima Fusion",
- "Quaid e Awam University of Engineering Science and Technology Nawabshah",
+ "Lovely Professional University",
"Regional Institute of Education",
- "Renaissance Fusion",
+ "Quaid e Awam University of Engineering Science and Technology Nawabshah",
+ "Universitas Gadjah Mada",
+ "nT-Tao",
+ "EX-Fusion Inc.",
+ "nTtau Digital LTD",
+ "University of York",
+ "University of Manchester",
+ "UKAEA",
+ "UK Industrial Fusion Solutions",
+ "Tokamak Energy Ltd.",
+ "Pasteur Labs",
"Nuclear Institute",
- "Institute of Physics Belgrade",
- "Mercenary",
+ "Kyoto Fusioneering UK Ltd",
"Imperial College London",
- "Indiana University Bloomington",
+ "IDOM UK Ltd",
+ "Google DeepMind",
+ "Marathon Fusion Inc, The University of Bath",
+ "France",
+ "Belgium",
+ "Europe",
+ "United Kingdom",
+ "Switzerland",
+ "Sweden",
+ "Spain",
+ "Slovenia",
+ "Serbia",
+ "Russian Federation",
+ "Austria",
+ "Poland",
+ "Luxembourg",
+ "Italy",
+ "Hungary",
+ "Greece",
+ "Germany",
+ "First Light Fusion",
+ "Finland",
+ "Denmark",
+ "Netherlands",
"Cerberus Nuclear",
- "Columbia University",
- "Cornell University",
- "Cosylab d.d.",
- "DIFFER",
- "DTU",
+ "Woodruff Scientific Ltd",
"EPFL",
- "Eindhoven University of Technology",
- "FS Dynamics",
- "First Light Fusion",
- "Flatiron Institute",
- "Forschungszentrum Juelich",
- "Fusion for Energy",
- "EX-Fusion Inc.",
+ "CEA",
"Gen-F",
- "Gauss Fusion GmbH",
- "ITER RF Domestic Agency",
- "ITER Organization",
- "IDOM UK Ltd",
- "IDOM",
- "IAEA",
- "HI IBERIA",
- "Idaho National Laboratory",
- "Google DeepMind",
- "Ghent University",
- "General Fusion Inc.",
- "General Atomics",
"Graneet",
+ "ITER Organization",
+ "Renaissance Fusion",
+ "Forschungszentrum Juelich",
+ "Gauss Fusion GmbH",
+ "Max Planck Institute for Plasma Physics",
+ "Proxima Fusion",
+ "Aix-Marseille University",
"Uni Stuttgart",
- "Universitas Gadjah Mada",
- "University of Manchester",
- "University of Maryland",
+ "C3D Engineering Ltd.",
+ "Politecnico di Milano",
+ "Politecnico di Torino",
+ "Sapienza University of Rome",
"University of Padua",
- "University of Rochester",
+ "SPC-EPFL",
"University of Rome \"Tor Vergata\" | ENEA Frascati Research Centre",
- "University of York",
- "University of Tennessee",
- "VTT Technical Research Centre",
- "Victoria University of Wellington",
- "Woodruff Scientific Ltd",
- "nT-Tao",
- "University of Saskatchewan",
- "UW-Madison",
- "Rensselaer Polytechnic Institute",
- "UKAEA",
- "UK Industrial Fusion Solutions",
- "Tokamak Energy Ltd.",
- "Thea Energy",
- "The UM6P Vanguard Center",
- "Texas A&M University",
- "TAE Technologies",
- "South Dakota School of Mines & Technology",
- "Sapienza University of Rome",
- "Sapientai LLC",
- "SPC-EPFL",
- "Rutherford Energy Ventures",
+ "Next Step Fusion",
+ "DIFFER",
+ "National Technical University of Athens",
+ "Eindhoven University of Technology",
+ "ASNR",
+ "FS Dynamics",
+ "KTH Royal Institute of Technology",
+ "Next Step Fusion",
+ "IDOM",
+ "HI IBERIA",
+ "Fusion for Energy",
+ "ATG Engineering S.L.",
+ "Cosylab d.d.",
+ "Institute of Physics Belgrade",
"Rosatom, Institution \"Project Center ITER\"",
- "UOM",
- "nTtau Digital LTD",
+ "VTT Technical Research Centre",
+ "Peter the Great St.Petersburg Polytechnic University",
+ "NRC Kurchatov Institute",
+ "IAEA",
+ "ITER RF Domestic Agency",
+ "Ghent University",
+ "Phd in nuclear physics (2007), currently a tech entrepreneur",
+ "DTU",
+ "Knudsen",
+ "NRNU MEPhI",
"unaffiliated",
- "Australia",
- "Austria",
- "Bangladesh",
- "Belgium",
- "Canada",
- "Denmark",
- "Finland",
- "France",
- "Germany",
- "Greece",
- "Hungary",
- "India",
- "Indonesia",
- "Israel",
- "Italy",
- "Japan",
- "Luxembourg",
- "Morocco",
- "Netherlands",
- "New Zealand",
- "Pakistan",
- "Poland",
- "Russian Federation",
- "Serbia",
- "Singapore",
- "Slovenia",
- "Spain",
- "Sweden",
- "Switzerland",
- "United Kingdom",
"United States",
- "Africa",
- "Asia",
- "Europe",
+ "Canada",
+ "UW-Madison",
+ "Indiana University Bloomington",
+ "Mercenary",
+ "University of Saskatchewan",
+ "Argonne National Laboratory",
+ "CFS",
+ "Center for Astrophysics | Harvard & Smithsonian",
+ "Columbia University",
+ "Cornell University",
+ "Flatiron Institute",
+ "General Atomics",
+ "Idaho National Laboratory",
"North America",
+ "LBNL",
+ "Lawrence Livermore National Lab",
+ "Massachusetts Institute of Technology",
+ "ORNL",
+ "PPPL",
+ "Princeton University",
+ "Rensselaer Polytechnic Institute",
+ "Rutherford Energy Ventures",
+ "Sapientai LLC",
+ "South Dakota School of Mines & Technology",
+ "TAE Technologies",
+ "Texas A&M University",
+ "Thea Energy",
+ "University of Maryland",
+ "University of Rochester",
+ "University of Tennessee",
+ "Canadian Nuclear Laboratories",
+ "General Fusion Inc.",
+ "Meranti Research Laboratories",
+ "Australia",
+ "Victoria University of Wellington",
+ "New Zealand",
"Oceania"
],
"marker": {
"colors": [
+ "#c8b0b0",
+ "#c8b0b0",
+ "#c8b0b0",
+ "#907078",
+ "#907078",
+ "#907078",
+ "#907078",
+ "#907078",
+ "#907078",
+ "#907078",
+ "#907078",
+ "#907078",
+ "#907078",
+ "#907078",
+ "#907078",
+ "#907078",
+ "#907078",
+ "#907078",
+ "#907078",
"#f87850",
"#f87850",
"#f87850",
- "#e8d0a8",
"#f87850",
"#f87850",
- "#e8d0a8",
- "#e8d0a8",
- "#e8d0a8",
"#f87850",
"#f87850",
"#f87850",
- "#a89090",
"#f87850",
- "#e8d0a8",
- "#e8d0a8",
- "#907078",
- "#e8d0a8",
"#f87850",
"#f87850",
"#f87850",
"#f87850",
"#f87850",
- "#e8d0a8",
- "#907078",
- "#e8d0a8",
"#f87850",
"#f87850",
"#f87850",
"#f87850",
"#f87850",
"#f87850",
- "#e8d0a8",
"#f87850",
- "#907078",
- "#907078",
"#f87850",
"#f87850",
"#f87850",
- "#e8d0a8",
"#f87850",
- "#e8d0a8",
"#f87850",
- "#e8d0a8",
- "#e8d0a8",
"#f87850",
"#f87850",
"#f87850",
@@ -2020,10 +1908,8 @@
"#f87850",
"#f87850",
"#f87850",
- "#e8d0a8",
"#f87850",
"#f87850",
- "#907078",
"#f87850",
"#f87850",
"#f87850",
@@ -2032,365 +1918,231 @@
"#f87850",
"#f87850",
"#f87850",
- "#e8d0a8",
"#f87850",
"#f87850",
- "#e8d0a8",
- "#e8d0a8",
"#f87850",
"#f87850",
- "#907078",
"#f87850",
- "#e8d0a8",
"#f87850",
- "#e8d0a8",
"#f87850",
"#f87850",
- "#e8d0a8",
"#f87850",
- "#a89090",
"#f87850",
- "#907078",
- "#e8d0a8",
- "#e8d0a8",
- "#e8d0a8",
"#f87850",
"#f87850",
"#f87850",
- "#e8d0a8",
- "#c8b0b0",
- "#e8d0a8",
- "#e8d0a8",
- "#e8d0a8",
"#f87850",
- "#e8d0a8",
"#f87850",
- "#e8d0a8",
"#f87850",
- "#907078",
"#f87850",
"#f87850",
- "#a89090",
"#f87850",
- "#907078",
"#f87850",
- "#e8d0a8",
"#f87850",
"#f87850",
"#f87850",
"#f87850",
"#f87850",
"#f87850",
- "#907078",
- "#907078",
- "#907078",
"#f87850",
- "#907078",
"#f87850",
- "#c8b0b0",
"#f87850",
- "#a89090",
- "#907078",
"#f87850",
"#f87850",
"#f87850",
- "#907078",
"#f87850",
"#f87850",
"#f87850",
"#f87850",
"#f87850",
- "#e8d0a8",
- "#c8b0b0",
- "#907078",
"#f87850",
"#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#a89090",
+ "#a89090",
+ "#a89090",
+ "#a89090",
"#a89090"
]
},
"name": "",
"parents": [
- "Europe/France",
- "Europe/Spain",
- "Europe/France",
- "North America/United States",
- "Europe/Hungary",
- "Europe/France",
- "North America/United States",
- "North America/Canada",
- "North America/United States",
- "Europe/Greece",
- "Europe/Russian Federation",
- "Europe/Russian Federation",
- "Oceania/Australia",
- "Europe/Germany",
- "North America/United States",
- "North America/United States",
+ "Africa/Morocco",
+ "Africa",
+ "",
+ "Asia",
+ "Asia",
+ "Asia",
+ "Asia",
+ "Asia",
+ "Asia",
+ "",
+ "Asia",
+ "Asia/Singapore",
+ "Asia/Bangladesh",
"Asia/India",
- "North America/United States",
- "Europe/Luxembourg",
+ "Asia/India",
+ "Asia/Pakistan",
+ "Asia/Indonesia",
+ "Asia/Israel",
+ "Asia/Japan",
"Europe/United Kingdom",
- "Europe/Denmark",
"Europe/United Kingdom",
- "Europe/Spain",
- "North America/United States",
- "Asia/Bangladesh",
- "North America/United States",
- "Europe/Sweden",
"Europe/United Kingdom",
- "Europe/Russian Federation",
- "Europe/Belgium",
- "Europe/Italy",
- "Europe/Italy",
- "North America/United States",
- "Europe/Germany",
- "Asia/Pakistan",
- "Asia/India",
- "Europe/France",
- "Europe/United Kingdom",
- "Europe/Serbia",
- "North America/Canada",
- "Europe/United Kingdom",
- "North America/United States",
- "Europe/United Kingdom",
- "North America/United States",
- "North America/United States",
- "Europe/Slovenia",
- "Europe/Netherlands",
- "Europe/Denmark",
- "Europe/Switzerland",
- "Europe/Netherlands",
- "Europe/Finland",
"Europe/United Kingdom",
- "North America/United States",
- "Europe/Germany",
- "Europe/Spain",
- "Asia/Japan",
- "Europe/France",
- "Europe/Germany",
- "Europe/Russian Federation",
- "Europe/France",
"Europe/United Kingdom",
- "Europe/Spain",
- "Europe/Austria",
- "Europe/Spain",
- "North America/United States",
"Europe/United Kingdom",
- "Europe/Belgium",
- "North America/Canada",
- "North America/United States",
- "Europe/France",
- "Europe/Germany",
- "Asia/Indonesia",
"Europe/United Kingdom",
- "North America/United States",
- "Europe/Italy",
- "North America/United States",
- "Europe/Italy",
"Europe/United Kingdom",
- "North America/United States",
- "Europe/Finland",
- "Oceania/New Zealand",
"Europe/United Kingdom",
- "Asia/Israel",
- "North America/Canada",
- "North America/United States",
- "North America/United States",
"Europe/United Kingdom",
"Europe/United Kingdom",
"Europe/United Kingdom",
- "North America/United States",
- "Africa/Morocco",
- "North America/United States",
- "North America/United States",
- "North America/United States",
- "Europe/Italy",
- "North America/United States",
- "Europe/Switzerland",
- "North America/United States",
- "Europe/Russian Federation",
- "Asia/Singapore",
"Europe/United Kingdom",
- "Europe/Poland",
- "Oceania",
"Europe",
- "Asia",
"Europe",
- "North America",
+ "",
"Europe",
"Europe",
"Europe",
"Europe",
"Europe",
"Europe",
- "Asia",
- "Asia",
- "Asia",
"Europe",
- "Asia",
"Europe",
- "Africa",
"Europe",
- "Oceania",
- "Asia",
"Europe",
"Europe",
"Europe",
- "Asia",
"Europe",
"Europe",
+ "Europe/United Kingdom",
"Europe",
"Europe",
"Europe",
+ "Europe/United Kingdom",
+ "Europe/United Kingdom",
+ "Europe/Switzerland",
+ "Europe/France",
+ "Europe/France",
+ "Europe/France",
+ "Europe/France",
+ "Europe/France",
+ "Europe/Germany",
+ "Europe/Germany",
+ "Europe/Germany",
+ "Europe/Germany",
+ "Europe/France",
+ "Europe/Germany",
+ "Europe/Hungary",
+ "Europe/Italy",
+ "Europe/Italy",
+ "Europe/Italy",
+ "Europe/Italy",
+ "Europe/Switzerland",
+ "Europe/Italy",
+ "Europe/Luxembourg",
+ "Europe/Netherlands",
+ "Europe/Greece",
+ "Europe/Netherlands",
+ "Europe/France",
+ "Europe/Finland",
+ "Europe/Sweden",
+ "Europe/Spain",
+ "Europe/Spain",
+ "Europe/Spain",
+ "Europe/Spain",
+ "Europe/Spain",
+ "Europe/Slovenia",
+ "Europe/Serbia",
+ "Europe/Russian Federation",
+ "Europe/Finland",
+ "Europe/Russian Federation",
+ "Europe/Russian Federation",
+ "Europe/Austria",
+ "Europe/Russian Federation",
+ "Europe/Belgium",
+ "Europe/Belgium",
+ "Europe/Denmark",
+ "Europe/Denmark",
+ "Europe/Russian Federation",
+ "Europe/Poland",
"North America",
+ "North America",
+ "North America/United States",
+ "North America/United States",
+ "North America/Canada",
+ "North America/Canada",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
"",
- "",
- "",
- "",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/United States",
+ "North America/Canada",
+ "North America/Canada",
+ "Oceania/Australia",
+ "Oceania",
+ "Oceania/New Zealand",
+ "Oceania",
""
],
"texttemplate": "%{label} %{customdata[0]}",
"type": "treemap",
- "values": [
- 1,
- 4,
- 1,
- 2,
- 1,
- 3,
- 5,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 5,
- 9,
- 8,
- 1,
- 1,
- 3,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 2,
- 1,
- 1,
- 1,
- 1,
- 3,
- 7,
- 1,
- 8,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 5,
- 1,
- 1,
- 2,
- 1,
- 1,
- 2,
- 2,
- 1,
- 3,
- 1,
- 1,
- 2,
- 1,
- 4,
- 1,
- 2,
- 1,
- 1,
- 3,
- 2,
- 2,
- 1,
- 4,
- 4,
- 1,
- 1,
- 3,
- 5,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 2,
- 1,
- 6,
- 1,
- 4,
- 1,
- 3,
- 2,
- 1,
- 1,
- 3,
- 23,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 6,
- 1,
- 1,
- 1,
- 1,
- 2,
- 6,
- 3,
- 5,
- 12,
- 16,
- 1,
- 1,
- 2,
- 1,
- 2,
- 13,
- 1,
- 3,
- 1,
- 5,
- 1,
- 1,
- 1,
- 5,
- 1,
- 1,
- 1,
- 15,
- 1,
- 2,
- 55,
- 59,
- 1,
- 9,
- 143,
- 65,
- 2
- ]
+ "values": {
+ "bdata": "AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/AAAAAAAAIkAAAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAABAAAAAAAAA8D8AAAAAAAAYQAAAAAAAABhAAAAAAAAA8D8AAAAAAAA2QAAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAAAUQAAAAAAAAABAAAAAAAAA8D8AAAAAAADwPwAAAAAAAChAAAAAAAAAAEAAAAAAAKBhQAAAAAAAAEtAAAAAAAAAAEAAAAAAAADwPwAAAAAAACxAAAAAAAAA8D8AAAAAAADwPwAAAAAAABRAAAAAAAAA8D8AAAAAAADwPwAAAAAAAAhAAAAAAAAAKkAAAAAAAADwPwAAAAAAAPA/AAAAAAAAMEAAAAAAAADwPwAAAAAAABRAAAAAAAAACEAAAAAAAAAUQAAAAAAAAPA/AAAAAAAACEAAAAAAAADwPwAAAAAAAAhAAAAAAAAAAEAAAAAAAADwPwAAAAAAAAhAAAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAFEAAAAAAAAAgQAAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAAhAAAAAAAAAHEAAAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAAhAAAAAAAAAAEAAAAAAAADwPwAAAAAAAAhAAAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAIQAAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAABBAAAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAIBNQAAAAAAAABhAAAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAABRAAAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAUQAAAAAAAABBAAAAAAABAUEAAAAAAAAAgQAAAAAAAAPA/AAAAAAAAIkAAAAAAAAAAQAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAIQAAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/AAAAAAAACEAAAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAABA",
+ "dtype": "f8"
+ }
}
],
"layout": {
@@ -2583,57 +2335,6 @@
"type": "heatmap"
}
],
- "heatmapgl": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 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,
- "#f0f921"
- ]
- ],
- "type": "heatmapgl"
- }
- ],
"histogram": [
{
"marker": {
@@ -2834,6 +2535,1240 @@
"type": "scattergl"
}
],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 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,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "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"
+ ]
+ ],
+ "sequential": [
+ [
+ 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,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 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,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import pycountry_convert as pc\n",
+ "import pandas as pd\n",
+ "import plotly.express as px\n",
+ "import matplotlib.colors as mcolors\n",
+ "\n",
+ "df = pd.read_csv(\"registrations.csv\")\n",
+ "\n",
+ "# remove trailing whitespaces from country names\n",
+ "df[\"Country\"] = df[\"Country\"].str.strip()\n",
+ "# replace double spaces by single space\n",
+ "df[\"Country\"] = df[\"Country\"].str.replace(\" \", \" \")\n",
+ "\n",
+ "\n",
+ "def lookup_country(name: str, *, allow_fuzzy: bool = False) -> str | None:\n",
+ " \"\"\"Lookup country name by country `name` using `pycountry`.\"\"\"\n",
+ "\n",
+ " import pycountry\n",
+ "\n",
+ " # Handle special cases\n",
+ " if name == \"UK\":\n",
+ " name = \"United Kingdom\"\n",
+ " if name == \"Cheshire\":\n",
+ " name = \"United Kingdom\"\n",
+ " if name == \"England\":\n",
+ " name = \"United Kingdom\"\n",
+ " elif name == \"Russia\":\n",
+ " name = \"Russian Federation\"\n",
+ " elif name == \"The Netherlands\":\n",
+ " name = \"Netherlands\"\n",
+ " elif name == \"USA and UK\":\n",
+ " name = \"United Kingdom\"\n",
+ " elif name == \"United States America\":\n",
+ " name = \"United States\"\n",
+ "\n",
+ " if country := pycountry.countries.get(name=name):\n",
+ " return country.name\n",
+ "\n",
+ " try:\n",
+ " return pycountry.countries.lookup(name).name\n",
+ " except LookupError:\n",
+ " pass\n",
+ "\n",
+ " try:\n",
+ " return (\n",
+ " pycountry.countries.search_fuzzy(query=name)[0].name\n",
+ " if allow_fuzzy\n",
+ " else None\n",
+ " )\n",
+ " except (LookupError, IndexError):\n",
+ " return None\n",
+ "\n",
+ "\n",
+ "# Apply the function to standardize country names\n",
+ "for country_name in df[\"Country\"].unique():\n",
+ " assert (\n",
+ " lookup_country(country_name) is not None\n",
+ " ), f\"Country name {country_name} not found\"\n",
+ "\n",
+ "df[\"Country\"] = df[\"Country\"].apply(lookup_country)\n",
+ "\n",
+ "# show where the country name is None\n",
+ "assert df[\"Country\"].isnull().sum() == 0, \"Some country names are None\"\n",
+ "\n",
+ "\n",
+ "# Function to get continent name from country name\n",
+ "def get_continent(country_name):\n",
+ " try:\n",
+ " country_alpha2 = pc.country_name_to_country_alpha2(country_name)\n",
+ " continent_code = pc.country_alpha2_to_continent_code(country_alpha2)\n",
+ " continent_name = pc.convert_continent_code_to_continent_name(continent_code)\n",
+ " return continent_name\n",
+ " except:\n",
+ " raise ValueError(f\"Country name {country_name} not found\")\n",
+ "\n",
+ "\n",
+ "# Add continent column\n",
+ "df[\"Continent\"] = df[\"Country\"].apply(get_continent)\n",
+ "\n",
+ "institution_map = {\n",
+ " \"UKAEA\": \"UKAEA\",\n",
+ " \"UK Atomic Energy Authority\": \"UKAEA\",\n",
+ " \"Imperial College London/UK Atomic Energy Authority\": \"Imperial College London\",\n",
+ " \"York Plasma Institute, University of York\": \"University of York\",\n",
+ " \"HI IBERIA (HIB) https://www.hi-iberia.es/artificial-intelligence\": \"HI IBERIA\",\n",
+ " \"HI-Iberia\": \"HI IBERIA\",\n",
+ " \"HI Iberia\": \"HI IBERIA\",\n",
+ " \"HI-Iberia, University Carlos II, Gregorio Millán Barbany Institute\": \"HI IBERIA\",\n",
+ " \"ATG Engineering S.L\": \"ATG Engineering S.L.\",\n",
+ " \"ATG Europe\": \"ATG Engineering S.L.\",\n",
+ " \"VTT Research Center of Finland\": \"VTT Technical Research Centre\",\n",
+ " \"VTT Technical Research Centre of Finland Ltd\": \"VTT Technical Research Centre\",\n",
+ " \"VTT Technical Research Centre of Finland Ltd.\": \"VTT Technical Research Centre\",\n",
+ " \"VTT\": \"VTT Technical Research Centre\",\n",
+ " \"CEA/IRFM\": \"CEA\",\n",
+ " \"CEA IRFM\": \"CEA\",\n",
+ " \"MIT\": \"Massachusetts Institute of Technology\",\n",
+ " \"General Fusion\": \"General Fusion Inc.\",\n",
+ " \"MIT PSFC\": \"Massachusetts Institute of Technology\",\n",
+ " \"ntTau Digital\": \"nTtau Digital LTD\",\n",
+ " \"nTtau Digital\": \"nTtau Digital LTD\",\n",
+ " \"nTtau Digital Ltd\": \"nTtau Digital LTD\",\n",
+ " \"Proxima Fusion GmbH\": \"Proxima Fusion\",\n",
+ " \"University of York Plasma Institute\": \"University of York\",\n",
+ " \"University of Rochester Laboratory for Laser Energetics\": \"University of Rochester\",\n",
+ " \"Politecnico of Turin\": \"Politecnico di Torino\",\n",
+ " \"Oak Ridge National Laboratory\": \"ORNL\",\n",
+ " \"Thales\": \"Gen-F\",\n",
+ " \"GenF\": \"Gen-F\",\n",
+ " \"ITER-FRANCE\": \"ITER Organization\",\n",
+ " \"Woodruff Scientific\": \"Woodruff Scientific Ltd\",\n",
+ " \"Lawrence Berkeley National Laboratory\": \"LBNL\",\n",
+ " \"IDOM UK\": \"IDOM UK Ltd\",\n",
+ " \"IDOM Nuclear Services\": \"IDOM\",\n",
+ " \"Flatiron institute\": \"Flatiron Institute\",\n",
+ " \"Commonwealth Fusion Systems\": \"CFS\",\n",
+ " \"Fusion for energy\": \"Fusion for Energy\",\n",
+ " \"Fusion For Energy\": \"Fusion for Energy\",\n",
+ " \"F4E\": \"Fusion for Energy\",\n",
+ " \"DTU - Technical University of Denmark\": \"DTU\",\n",
+ " \"Next Step Fusion s.a.r.l.\": \"Next Step Fusion\",\n",
+ "}\n",
+ "\n",
+ "# remove all trailing whitespaces from institutions\n",
+ "df[\"Institution\"] = df[\"Institution\"].str.strip()\n",
+ "\n",
+ "\n",
+ "def standardise_institutions(institution):\n",
+ " return institution_map.get(institution, institution)\n",
+ "\n",
+ "\n",
+ "df[\"Institution\"] = df[\"Institution\"].apply(standardise_institutions)\n",
+ "\n",
+ "# # compute number of registrations per country\n",
+ "df = (\n",
+ " df.groupby([\"Continent\", \"Country\", \"Institution\"]).size().reset_index(name=\"count\")\n",
+ ")\n",
+ "# Map colors to unique continents\n",
+ "unique_continents = (\n",
+ " df.groupby(\"Continent\")[\"count\"].sum().sort_values(ascending=False).index\n",
+ ")\n",
+ "\n",
+ "color_map = {\n",
+ " continent: mcolors.to_hex(cmap(i / (len(unique_continents) - 1)))\n",
+ " for i, continent in enumerate(unique_continents)\n",
+ "}\n",
+ "df[\"color\"] = df[\"Continent\"].map(color_map)\n",
+ "\n",
+ "\n",
+ "# make a treemap grouped by continent\n",
+ "fig = px.treemap(\n",
+ " df,\n",
+ " path=[\"Continent\", \"Country\", \"Institution\"], # Specify the hierarchy\n",
+ " values=\"count\", # Specify the values\n",
+ " color=\"Continent\", # Color by continent\n",
+ " color_discrete_map=color_map, # Set the color map\n",
+ " custom_data=df[[\"count\"]], # Add custom data for the count\n",
+ " hover_data={\"count\": \":.0f\"}, # Format the count\n",
+ " labels={\"count\": \"Registrations\"},\n",
+ ")\n",
+ "\n",
+ "\n",
+ "fig.update_traces(texttemplate=\"%{label} %{customdata[0]}\") # Show label and count\n",
+ "fig.update_layout(font=dict(family=\"Coolvetica\", color=\"black\"))\n",
+ "\n",
+ "# print number unique institutions\n",
+ "print(f\"Number of unique institutions: {len(df['Institution'].unique())}\")\n",
+ "\n",
+ "fig\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Participants per country\n",
+ "\n",
+ "The United States and the United Kingdom have the largest representations at OSSFE 2025, with 59 and 53 participants, respectively!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": [
+ "hide-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "customdata": [
+ [
+ 1,
+ "Australia"
+ ],
+ [
+ 1,
+ "Austria"
+ ],
+ [
+ 1,
+ "Bangladesh"
+ ],
+ [
+ 2,
+ "Belgium"
+ ],
+ [
+ 6,
+ "Canada"
+ ],
+ [
+ 3,
+ "Denmark"
+ ],
+ [
+ 5,
+ "Finland"
+ ],
+ [
+ 12,
+ "France"
+ ],
+ [
+ 16,
+ "Germany"
+ ],
+ [
+ 1,
+ "Greece"
+ ],
+ [
+ 1,
+ "Hungary"
+ ],
+ [
+ 2,
+ "India"
+ ],
+ [
+ 1,
+ "Indonesia"
+ ],
+ [
+ 2,
+ "Israel"
+ ],
+ [
+ 13,
+ "Italy"
+ ],
+ [
+ 1,
+ "Japan"
+ ],
+ [
+ 3,
+ "Luxembourg"
+ ],
+ [
+ 1,
+ "Morocco"
+ ],
+ [
+ 5,
+ "Netherlands"
+ ],
+ [
+ 1,
+ "New Zealand"
+ ],
+ [
+ 1,
+ "Pakistan"
+ ],
+ [
+ 1,
+ "Poland"
+ ],
+ [
+ 5,
+ "Russian Federation"
+ ],
+ [
+ 1,
+ "Serbia"
+ ],
+ [
+ 1,
+ "Singapore"
+ ],
+ [
+ 1,
+ "Slovenia"
+ ],
+ [
+ 14,
+ "Spain"
+ ],
+ [
+ 1,
+ "Sweden"
+ ],
+ [
+ 2,
+ "Switzerland"
+ ],
+ [
+ 54,
+ "United Kingdom"
+ ],
+ [
+ 59,
+ "United States"
+ ]
+ ],
+ "geo": "geo",
+ "hovertemplate": "%{hovertext}
count=%{customdata[0]}",
+ "hovertext": [
+ "Australia",
+ "Austria",
+ "Bangladesh",
+ "Belgium",
+ "Canada",
+ "Denmark",
+ "Finland",
+ "France",
+ "Germany",
+ "Greece",
+ "Hungary",
+ "India",
+ "Indonesia",
+ "Israel",
+ "Italy",
+ "Japan",
+ "Luxembourg",
+ "Morocco",
+ "Netherlands",
+ "New Zealand",
+ "Pakistan",
+ "Poland",
+ "Russian Federation",
+ "Serbia",
+ "Singapore",
+ "Slovenia",
+ "Spain",
+ "Sweden",
+ "Switzerland",
+ "United Kingdom",
+ "United States"
+ ],
+ "legendgroup": "",
+ "locationmode": "country names",
+ "locations": [
+ "Australia",
+ "Austria",
+ "Bangladesh",
+ "Belgium",
+ "Canada",
+ "Denmark",
+ "Finland",
+ "France",
+ "Germany",
+ "Greece",
+ "Hungary",
+ "India",
+ "Indonesia",
+ "Israel",
+ "Italy",
+ "Japan",
+ "Luxembourg",
+ "Morocco",
+ "Netherlands",
+ "New Zealand",
+ "Pakistan",
+ "Poland",
+ "Russian Federation",
+ "Serbia",
+ "Singapore",
+ "Slovenia",
+ "Spain",
+ "Sweden",
+ "Switzerland",
+ "United Kingdom",
+ "United States"
+ ],
+ "marker": {
+ "color": "#636efa",
+ "size": {
+ "bdata": "AQEBAgYDBQwQAQECAQINAQMBBQEBAQUBAQEOAQI2Ow==",
+ "dtype": "i1"
+ },
+ "sizemode": "area",
+ "sizeref": 0.0236,
+ "symbol": "circle"
+ },
+ "mode": "markers",
+ "name": "",
+ "showlegend": false,
+ "type": "scattergeo"
+ }
+ ],
+ "layout": {
+ "font": {
+ "color": "black",
+ "family": "Coolvetica"
+ },
+ "geo": {
+ "center": {},
+ "domain": {
+ "x": [
+ 0,
+ 1
+ ],
+ "y": [
+ 0,
+ 1
+ ]
+ },
+ "projection": {
+ "type": "natural earth"
+ },
+ "showcoastlines": true,
+ "showframe": false
+ },
+ "legend": {
+ "itemsizing": "constant",
+ "tracegroupgap": 0
+ },
+ "margin": {
+ "t": 60
+ },
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 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,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 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,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 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,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 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,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
"scattermapbox": [
{
"marker": {
@@ -3162,282 +4097,646 @@
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
- "gridcolor": "white",
- "gridwidth": 2,
- "linecolor": "white",
- "showbackground": true,
- "ticks": "",
- "zerolinecolor": "white"
- }
- },
- "shapedefaults": {
- "line": {
- "color": "#2a3f5f"
- }
- },
- "ternary": {
- "aaxis": {
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": ""
- },
- "baxis": {
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": ""
- },
- "bgcolor": "#E5ECF6",
- "caxis": {
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": ""
- }
- },
- "title": {
- "x": 0.05
- },
- "xaxis": {
- "automargin": true,
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": "",
- "title": {
- "standoff": 15
- },
- "zerolinecolor": "white",
- "zerolinewidth": 2
- },
- "yaxis": {
- "automargin": true,
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": "",
- "title": {
- "standoff": 15
- },
- "zerolinecolor": "white",
- "zerolinewidth": 2
- }
- }
- }
- }
- },
- "text/html": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "import pycountry_convert as pc\n",
- "import pandas as pd\n",
- "import plotly.express as px\n",
- "import matplotlib.colors as mcolors\n",
- "\n",
- "df = pd.read_csv(\"registrations.csv\")\n",
- "\n",
- "# remove trailing whitespaces from country names\n",
- "df[\"Country\"] = df[\"Country\"].str.strip()\n",
- "# replace double spaces by single space\n",
- "df[\"Country\"] = df[\"Country\"].str.replace(\" \", \" \")\n",
- "\n",
- "\n",
- "def lookup_country(name: str, *, allow_fuzzy: bool = False) -> str | None:\n",
- " \"\"\"Lookup country name by country `name` using `pycountry`.\"\"\"\n",
- "\n",
- " import pycountry\n",
- "\n",
- " # Handle special cases\n",
- " if name == \"UK\":\n",
- " name = \"United Kingdom\"\n",
- " if name == \"Cheshire\":\n",
- " name = \"United Kingdom\"\n",
- " if name == \"England\":\n",
- " name = \"United Kingdom\"\n",
- " elif name == \"Russia\":\n",
- " name = \"Russian Federation\"\n",
- " elif name == \"The Netherlands\":\n",
- " name = \"Netherlands\"\n",
- " elif name == \"USA and UK\":\n",
- " name = \"United Kingdom\"\n",
- " elif name == \"United States America\":\n",
- " name = \"United States\"\n",
- "\n",
- " if country := pycountry.countries.get(name=name):\n",
- " return country.name\n",
- "\n",
- " try:\n",
- " return pycountry.countries.lookup(name).name\n",
- " except LookupError:\n",
- " pass\n",
- "\n",
- " try:\n",
- " return (\n",
- " pycountry.countries.search_fuzzy(query=name)[0].name\n",
- " if allow_fuzzy\n",
- " else None\n",
- " )\n",
- " except (LookupError, IndexError):\n",
- " return None\n",
- "\n",
- "\n",
- "# Apply the function to standardize country names\n",
- "for country_name in df[\"Country\"].unique():\n",
- " assert (\n",
- " lookup_country(country_name) is not None\n",
- " ), f\"Country name {country_name} not found\"\n",
- "\n",
- "df[\"Country\"] = df[\"Country\"].apply(lookup_country)\n",
- "\n",
- "# show where the country name is None\n",
- "assert df[\"Country\"].isnull().sum() == 0, \"Some country names are None\"\n",
- "\n",
- "\n",
- "# Function to get continent name from country name\n",
- "def get_continent(country_name):\n",
- " try:\n",
- " country_alpha2 = pc.country_name_to_country_alpha2(country_name)\n",
- " continent_code = pc.country_alpha2_to_continent_code(country_alpha2)\n",
- " continent_name = pc.convert_continent_code_to_continent_name(continent_code)\n",
- " return continent_name\n",
- " except:\n",
- " raise ValueError(f\"Country name {country_name} not found\")\n",
- "\n",
- "\n",
- "# Add continent column\n",
- "df[\"Continent\"] = df[\"Country\"].apply(get_continent)\n",
- "\n",
- "institution_map = {\n",
- " \"UKAEA\": \"UKAEA\",\n",
- " \"UK Atomic Energy Authority\": \"UKAEA\",\n",
- " \"Imperial College London/UK Atomic Energy Authority\": \"Imperial College London\",\n",
- " \"York Plasma Institute, University of York\": \"University of York\",\n",
- " \"HI IBERIA (HIB) https://www.hi-iberia.es/artificial-intelligence\": \"HI IBERIA\",\n",
- " \"HI-Iberia\": \"HI IBERIA\",\n",
- " \"HI Iberia\": \"HI IBERIA\",\n",
- " \"HI-Iberia, University Carlos II, Gregorio Millán Barbany Institute\": \"HI IBERIA\",\n",
- " \"ATG Engineering S.L\": \"ATG Engineering S.L.\",\n",
- " \"ATG Europe\": \"ATG Engineering S.L.\",\n",
- " \"VTT Research Center of Finland\": \"VTT Technical Research Centre\",\n",
- " \"VTT Technical Research Centre of Finland Ltd\": \"VTT Technical Research Centre\",\n",
- " \"VTT Technical Research Centre of Finland Ltd.\": \"VTT Technical Research Centre\",\n",
- " \"VTT\": \"VTT Technical Research Centre\",\n",
- " \"CEA/IRFM\": \"CEA\",\n",
- " \"CEA IRFM\": \"CEA\",\n",
- " \"MIT\": \"Massachusetts Institute of Technology\",\n",
- " \"General Fusion\": \"General Fusion Inc.\",\n",
- " \"MIT PSFC\": \"Massachusetts Institute of Technology\",\n",
- " \"ntTau Digital\": \"nTtau Digital LTD\",\n",
- " \"nTtau Digital\": \"nTtau Digital LTD\",\n",
- " \"nTtau Digital Ltd\": \"nTtau Digital LTD\",\n",
- " \"Proxima Fusion GmbH\": \"Proxima Fusion\",\n",
- " \"University of York Plasma Institute\": \"University of York\",\n",
- " \"University of Rochester Laboratory for Laser Energetics\": \"University of Rochester\",\n",
- " \"Politecnico of Turin\": \"Politecnico di Torino\",\n",
- " \"Oak Ridge National Laboratory\": \"ORNL\",\n",
- " \"Thales\": \"Gen-F\",\n",
- " \"GenF\": \"Gen-F\",\n",
- " \"ITER-FRANCE\": \"ITER Organization\",\n",
- " \"Woodruff Scientific\": \"Woodruff Scientific Ltd\",\n",
- " \"Lawrence Berkeley National Laboratory\": \"LBNL\",\n",
- " \"IDOM UK\": \"IDOM UK Ltd\",\n",
- " \"IDOM Nuclear Services\": \"IDOM\",\n",
- " \"Flatiron institute\": \"Flatiron Institute\",\n",
- " \"Commonwealth Fusion Systems\": \"CFS\",\n",
- " \"Fusion for energy\": \"Fusion for Energy\",\n",
- " \"Fusion For Energy\": \"Fusion for Energy\",\n",
- " \"F4E\": \"Fusion for Energy\",\n",
- " \"DTU - Technical University of Denmark\": \"DTU\",\n",
- " \"Next Step Fusion s.a.r.l.\": \"Next Step Fusion\",\n",
- "}\n",
- "\n",
- "# remove all trailing whitespaces from institutions\n",
- "df[\"Institution\"] = df[\"Institution\"].str.strip()\n",
- "\n",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Create a bubble chart on a map\n",
+ "# count by country and not institution\n",
"\n",
- "def standardise_institutions(institution):\n",
- " return institution_map.get(institution, institution)\n",
+ "# keep only Country and Count columns\n",
+ "df2 = df[[\"Country\", \"count\"]]\n",
"\n",
+ "# sum\n",
+ "df2 = df2.groupby(\"Country\").sum().reset_index()\n",
"\n",
- "df[\"Institution\"] = df[\"Institution\"].apply(standardise_institutions)\n",
+ "# df2[\"color\"] = df2[\"Continent\"].map(color_map)\n",
"\n",
- "# # compute number of registrations per country\n",
- "df = (\n",
- " df.groupby([\"Continent\", \"Country\", \"Institution\"]).size().reset_index(name=\"count\")\n",
- ")\n",
- "# Map colors to unique continents\n",
- "unique_continents = (\n",
- " df.groupby(\"Continent\")[\"count\"].sum().sort_values(ascending=False).index\n",
+ "fig = px.scatter_geo(\n",
+ " df2,\n",
+ " locations=\"Country\",\n",
+ " locationmode=\"country names\",\n",
+ " size=\"count\",\n",
+ " hover_name=\"Country\",\n",
+ " hover_data={\"count\": True, \"Country\": False},\n",
+ " projection=\"natural earth\",\n",
+ " size_max=50,\n",
")\n",
"\n",
- "color_map = {\n",
- " continent: mcolors.to_hex(cmap(i / (len(unique_continents) - 1)))\n",
- " for i, continent in enumerate(unique_continents)\n",
- "}\n",
- "df[\"color\"] = df[\"Continent\"].map(color_map)\n",
- "\n",
- "\n",
- "# make a treemap grouped by continent\n",
- "fig = px.treemap(\n",
- " df,\n",
- " path=[\"Continent\", \"Country\", \"Institution\"], # Specify the hierarchy\n",
- " values=\"count\", # Specify the values\n",
- " color=\"Continent\", # Color by continent\n",
- " color_discrete_map=color_map, # Set the color map\n",
- " custom_data=df[[\"count\"]], # Add custom data for the count\n",
- " hover_data={\"count\": \":.0f\"}, # Format the count\n",
- " labels={\"count\": \"Registrations\"},\n",
+ "# Update layout for better visualization\n",
+ "fig.update_layout(\n",
+ " # title=\"Registrations per Country\",\n",
+ " geo=dict(showframe=False, showcoastlines=True),\n",
+ " font=dict(family=\"Coolvetica\", color=\"black\"),\n",
")\n",
"\n",
- "\n",
- "fig.update_traces(texttemplate=\"%{label} %{customdata[0]}\") # Show label and count\n",
- "fig.update_layout(font=dict(family=\"Coolvetica\", color=\"black\"))\n",
- "\n",
- "# print number unique institutions\n",
- "print(f\"Number of unique institutions: {len(df['Institution'].unique())}\")\n",
- "\n",
- "fig\n",
- "\n"
+ "fig"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Participants per country\n",
+ "## Participants per institution type"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "tags": [
+ "hide-cell"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Continent | \n",
+ " Country | \n",
+ " Institution | \n",
+ " count | \n",
+ " color | \n",
+ " Type | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " Asia | \n",
+ " Bangladesh | \n",
+ " NukeHub | \n",
+ " 1 | \n",
+ " #907078 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " Asia | \n",
+ " Israel | \n",
+ " nT-Tao | \n",
+ " 2 | \n",
+ " #907078 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " Asia | \n",
+ " Japan | \n",
+ " EX-Fusion Inc. | \n",
+ " 1 | \n",
+ " #907078 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 11 | \n",
+ " Europe | \n",
+ " Belgium | \n",
+ " Phd in nuclear physics (2007), currently a tec... | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 13 | \n",
+ " Europe | \n",
+ " Denmark | \n",
+ " Knudsen | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 14 | \n",
+ " Europe | \n",
+ " Finland | \n",
+ " FS Dynamics | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 16 | \n",
+ " Europe | \n",
+ " France | \n",
+ " ASNR | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 19 | \n",
+ " Europe | \n",
+ " France | \n",
+ " Gen-F | \n",
+ " 2 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 20 | \n",
+ " Europe | \n",
+ " France | \n",
+ " Graneet | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 22 | \n",
+ " Europe | \n",
+ " France | \n",
+ " Renaissance Fusion | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 24 | \n",
+ " Europe | \n",
+ " Germany | \n",
+ " Gauss Fusion GmbH | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 26 | \n",
+ " Europe | \n",
+ " Germany | \n",
+ " Proxima Fusion | \n",
+ " 8 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 29 | \n",
+ " Europe | \n",
+ " Hungary | \n",
+ " C3D Engineering Ltd. | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 35 | \n",
+ " Europe | \n",
+ " Luxembourg | \n",
+ " Next Step Fusion | \n",
+ " 3 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 38 | \n",
+ " Europe | \n",
+ " Poland | \n",
+ " unaffiliated | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 45 | \n",
+ " Europe | \n",
+ " Slovenia | \n",
+ " Cosylab d.d. | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 46 | \n",
+ " Europe | \n",
+ " Spain | \n",
+ " ATG Engineering S.L. | \n",
+ " 3 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 48 | \n",
+ " Europe | \n",
+ " Spain | \n",
+ " HI IBERIA | \n",
+ " 4 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 49 | \n",
+ " Europe | \n",
+ " Spain | \n",
+ " IDOM | \n",
+ " 2 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 50 | \n",
+ " Europe | \n",
+ " Spain | \n",
+ " Next Step Fusion | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 54 | \n",
+ " Europe | \n",
+ " United Kingdom | \n",
+ " Cerberus Nuclear | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 55 | \n",
+ " Europe | \n",
+ " United Kingdom | \n",
+ " First Light Fusion | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 56 | \n",
+ " Europe | \n",
+ " United Kingdom | \n",
+ " Google DeepMind | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 57 | \n",
+ " Europe | \n",
+ " United Kingdom | \n",
+ " IDOM UK Ltd | \n",
+ " 2 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 59 | \n",
+ " Europe | \n",
+ " United Kingdom | \n",
+ " Kyoto Fusioneering UK Ltd | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 63 | \n",
+ " Europe | \n",
+ " United Kingdom | \n",
+ " Tokamak Energy Ltd. | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 64 | \n",
+ " Europe | \n",
+ " United Kingdom | \n",
+ " UK Industrial Fusion Solutions | \n",
+ " 1 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 68 | \n",
+ " Europe | \n",
+ " United Kingdom | \n",
+ " Woodruff Scientific Ltd | \n",
+ " 3 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 69 | \n",
+ " Europe | \n",
+ " United Kingdom | \n",
+ " nTtau Digital LTD | \n",
+ " 6 | \n",
+ " #f87850 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 71 | \n",
+ " North America | \n",
+ " Canada | \n",
+ " General Fusion Inc. | \n",
+ " 3 | \n",
+ " #e8d0a8 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 72 | \n",
+ " North America | \n",
+ " Canada | \n",
+ " Mercenary | \n",
+ " 1 | \n",
+ " #e8d0a8 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 75 | \n",
+ " North America | \n",
+ " United States | \n",
+ " CFS | \n",
+ " 5 | \n",
+ " #e8d0a8 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 80 | \n",
+ " North America | \n",
+ " United States | \n",
+ " General Atomics | \n",
+ " 5 | \n",
+ " #e8d0a8 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 90 | \n",
+ " North America | \n",
+ " United States | \n",
+ " Rutherford Energy Ventures | \n",
+ " 1 | \n",
+ " #e8d0a8 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 91 | \n",
+ " North America | \n",
+ " United States | \n",
+ " Sapientai LLC | \n",
+ " 1 | \n",
+ " #e8d0a8 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 92 | \n",
+ " North America | \n",
+ " United States | \n",
+ " South Dakota School of Mines & Technology | \n",
+ " 1 | \n",
+ " #e8d0a8 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 93 | \n",
+ " North America | \n",
+ " United States | \n",
+ " TAE Technologies | \n",
+ " 1 | \n",
+ " #e8d0a8 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ " | 95 | \n",
+ " North America | \n",
+ " United States | \n",
+ " Thea Energy | \n",
+ " 1 | \n",
+ " #e8d0a8 | \n",
+ " Industry | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Continent Country \\\n",
+ "1 Asia Bangladesh \n",
+ "5 Asia Israel \n",
+ "6 Asia Japan \n",
+ "11 Europe Belgium \n",
+ "13 Europe Denmark \n",
+ "14 Europe Finland \n",
+ "16 Europe France \n",
+ "19 Europe France \n",
+ "20 Europe France \n",
+ "22 Europe France \n",
+ "24 Europe Germany \n",
+ "26 Europe Germany \n",
+ "29 Europe Hungary \n",
+ "35 Europe Luxembourg \n",
+ "38 Europe Poland \n",
+ "45 Europe Slovenia \n",
+ "46 Europe Spain \n",
+ "48 Europe Spain \n",
+ "49 Europe Spain \n",
+ "50 Europe Spain \n",
+ "54 Europe United Kingdom \n",
+ "55 Europe United Kingdom \n",
+ "56 Europe United Kingdom \n",
+ "57 Europe United Kingdom \n",
+ "59 Europe United Kingdom \n",
+ "63 Europe United Kingdom \n",
+ "64 Europe United Kingdom \n",
+ "68 Europe United Kingdom \n",
+ "69 Europe United Kingdom \n",
+ "71 North America Canada \n",
+ "72 North America Canada \n",
+ "75 North America United States \n",
+ "80 North America United States \n",
+ "90 North America United States \n",
+ "91 North America United States \n",
+ "92 North America United States \n",
+ "93 North America United States \n",
+ "95 North America United States \n",
+ "\n",
+ " Institution count color \\\n",
+ "1 NukeHub 1 #907078 \n",
+ "5 nT-Tao 2 #907078 \n",
+ "6 EX-Fusion Inc. 1 #907078 \n",
+ "11 Phd in nuclear physics (2007), currently a tec... 1 #f87850 \n",
+ "13 Knudsen 1 #f87850 \n",
+ "14 FS Dynamics 1 #f87850 \n",
+ "16 ASNR 1 #f87850 \n",
+ "19 Gen-F 2 #f87850 \n",
+ "20 Graneet 1 #f87850 \n",
+ "22 Renaissance Fusion 1 #f87850 \n",
+ "24 Gauss Fusion GmbH 1 #f87850 \n",
+ "26 Proxima Fusion 8 #f87850 \n",
+ "29 C3D Engineering Ltd. 1 #f87850 \n",
+ "35 Next Step Fusion 3 #f87850 \n",
+ "38 unaffiliated 1 #f87850 \n",
+ "45 Cosylab d.d. 1 #f87850 \n",
+ "46 ATG Engineering S.L. 3 #f87850 \n",
+ "48 HI IBERIA 4 #f87850 \n",
+ "49 IDOM 2 #f87850 \n",
+ "50 Next Step Fusion 1 #f87850 \n",
+ "54 Cerberus Nuclear 1 #f87850 \n",
+ "55 First Light Fusion 1 #f87850 \n",
+ "56 Google DeepMind 1 #f87850 \n",
+ "57 IDOM UK Ltd 2 #f87850 \n",
+ "59 Kyoto Fusioneering UK Ltd 1 #f87850 \n",
+ "63 Tokamak Energy Ltd. 1 #f87850 \n",
+ "64 UK Industrial Fusion Solutions 1 #f87850 \n",
+ "68 Woodruff Scientific Ltd 3 #f87850 \n",
+ "69 nTtau Digital LTD 6 #f87850 \n",
+ "71 General Fusion Inc. 3 #e8d0a8 \n",
+ "72 Mercenary 1 #e8d0a8 \n",
+ "75 CFS 5 #e8d0a8 \n",
+ "80 General Atomics 5 #e8d0a8 \n",
+ "90 Rutherford Energy Ventures 1 #e8d0a8 \n",
+ "91 Sapientai LLC 1 #e8d0a8 \n",
+ "92 South Dakota School of Mines & Technology 1 #e8d0a8 \n",
+ "93 TAE Technologies 1 #e8d0a8 \n",
+ "95 Thea Energy 1 #e8d0a8 \n",
+ "\n",
+ " Type \n",
+ "1 Industry \n",
+ "5 Industry \n",
+ "6 Industry \n",
+ "11 Industry \n",
+ "13 Industry \n",
+ "14 Industry \n",
+ "16 Industry \n",
+ "19 Industry \n",
+ "20 Industry \n",
+ "22 Industry \n",
+ "24 Industry \n",
+ "26 Industry \n",
+ "29 Industry \n",
+ "35 Industry \n",
+ "38 Industry \n",
+ "45 Industry \n",
+ "46 Industry \n",
+ "48 Industry \n",
+ "49 Industry \n",
+ "50 Industry \n",
+ "54 Industry \n",
+ "55 Industry \n",
+ "56 Industry \n",
+ "57 Industry \n",
+ "59 Industry \n",
+ "63 Industry \n",
+ "64 Industry \n",
+ "68 Industry \n",
+ "69 Industry \n",
+ "71 Industry \n",
+ "72 Industry \n",
+ "75 Industry \n",
+ "80 Industry \n",
+ "90 Industry \n",
+ "91 Industry \n",
+ "92 Industry \n",
+ "93 Industry \n",
+ "95 Industry "
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# distinguish between universities, national lab and industry\n",
+ "def institution_type(x):\n",
+ " if \"Univers\" in x or \"College\" in x or \"Center\" in x or \"Institute\" in x or \"Forschungszentrum\" in x or \"Uni\" in x or \"Politecnico\" in x or \"EPFL\" in x:\n",
+ " return \"University\"\n",
+ " elif x in [\"UW-Madison\", \"PPPL\", \"DTU\", \"UOM\"]:\n",
+ " return \"University\"\n",
+ " elif \"Lab\" in x or \"National\" in x or \"Differ\" in x or \"Research\" in x or \"R&D\" in x or \"National Laboratory\" in x or \"National Research\" in x:\n",
+ " return \"National Lab\"\n",
+ " elif x.endswith(\"NL\") or x in [\"UKAEA\", \"CEA\", \"DIFFER\", \"NRNU MEPhI\"]:\n",
+ " return \"National Lab\"\n",
+ " elif x in [\"IAEA\", \"ITER Organization\", \"Fusion for Energy\", \"F4E\", \"ITER-FRANCE\", \"ITER RF Domestic Agency\"]:\n",
+ " return \"Other\"\n",
+ " else:\n",
+ " return \"Industry\"\n",
"\n",
- "The United States and the United Kingdom have the largest representations at OSSFE 2025, with 59 and 53 participants, respectively!"
+ "df[\"Type\"] = df[\"Institution\"].apply(institution_type)\n",
+ "df[df[\"Type\"] == \"Industry\"]"
]
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 8,
"metadata": {
"tags": [
"hide-input"
@@ -3452,272 +4751,775 @@
},
"data": [
{
+ "branchvalues": "total",
"customdata": [
[
- 1,
- "Australia"
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "Industry"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "National Lab"
+ ],
+ [
+ "Other"
+ ],
+ [
+ "Other"
+ ],
+ [
+ "Other"
],
[
- 1,
- "Austria"
+ "Other"
],
[
- 1,
- "Bangladesh"
+ "Other"
],
[
- 2,
- "Belgium"
+ "University"
],
[
- 6,
- "Canada"
+ "University"
],
[
- 3,
- "Denmark"
+ "University"
],
[
- 5,
- "Finland"
+ "University"
],
[
- 12,
- "France"
+ "University"
],
[
- 16,
- "Germany"
+ "University"
],
[
- 1,
- "Greece"
+ "University"
],
[
- 1,
- "Hungary"
+ "University"
],
[
- 2,
- "India"
+ "University"
],
[
- 1,
- "Indonesia"
+ "University"
],
[
- 2,
- "Israel"
+ "University"
],
[
- 13,
- "Italy"
+ "University"
],
[
- 1,
- "Japan"
+ "University"
],
[
- 3,
- "Luxembourg"
+ "University"
],
[
- 1,
- "Morocco"
+ "University"
],
[
- 5,
- "Netherlands"
+ "University"
],
[
- 1,
- "New Zealand"
+ "University"
],
[
- 1,
- "Pakistan"
+ "University"
],
[
- 1,
- "Poland"
+ "University"
],
[
- 5,
- "Russian Federation"
+ "University"
],
[
- 1,
- "Serbia"
+ "University"
],
[
- 1,
- "Singapore"
+ "University"
],
[
- 1,
- "Slovenia"
+ "University"
],
[
- 15,
- "Spain"
+ "University"
],
[
- 1,
- "Sweden"
+ "University"
],
[
- 2,
- "Switzerland"
+ "University"
],
[
- 55,
- "United Kingdom"
+ "University"
],
[
- 59,
- "United States"
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
+ ],
+ [
+ "University"
]
],
- "geo": "geo",
- "hovertemplate": "%{hovertext}
count=%{customdata[0]}",
- "hovertext": [
- "Australia",
- "Austria",
- "Bangladesh",
- "Belgium",
- "Canada",
- "Denmark",
- "Finland",
- "France",
- "Germany",
- "Greece",
- "Hungary",
- "India",
- "Indonesia",
- "Israel",
- "Italy",
- "Japan",
- "Luxembourg",
- "Morocco",
- "Netherlands",
- "New Zealand",
- "Pakistan",
- "Poland",
- "Russian Federation",
- "Serbia",
- "Singapore",
- "Slovenia",
- "Spain",
- "Sweden",
- "Switzerland",
- "United Kingdom",
- "United States"
+ "domain": {
+ "x": [
+ 0,
+ 1
+ ],
+ "y": [
+ 0,
+ 1
+ ]
+ },
+ "hovertemplate": "labels=%{label}
Count=%{value}
parent=%{parent}
id=%{id}
Type=%{customdata[0]}",
+ "ids": [
+ "Industry/ASNR",
+ "Industry/Next Step Fusion",
+ "Industry/NukeHub",
+ "Industry/Phd in nuclear physics (2007), currently a tech entrepreneur",
+ "Industry/Proxima Fusion",
+ "Industry/Renaissance Fusion",
+ "Industry",
+ "Industry/Sapientai LLC",
+ "Industry/Mercenary",
+ "Industry/South Dakota School of Mines & Technology",
+ "Industry/Thea Energy",
+ "Industry/Tokamak Energy Ltd.",
+ "Industry/UK Industrial Fusion Solutions",
+ "Industry/Woodruff Scientific Ltd",
+ "Industry/nT-Tao",
+ "Industry/nTtau Digital LTD",
+ "Industry/unaffiliated",
+ "Industry/TAE Technologies",
+ "Industry/Kyoto Fusioneering UK Ltd",
+ "Industry/Rutherford Energy Ventures",
+ "Industry/IDOM UK Ltd",
+ "Industry/Knudsen",
+ "Industry/C3D Engineering Ltd.",
+ "Industry/CFS",
+ "Industry/Cerberus Nuclear",
+ "Industry/Cosylab d.d.",
+ "Industry/EX-Fusion Inc.",
+ "Industry/FS Dynamics",
+ "Industry/First Light Fusion",
+ "Industry/ATG Engineering S.L.",
+ "Industry/Gen-F",
+ "Industry/General Atomics",
+ "Industry/General Fusion Inc.",
+ "Industry/Google DeepMind",
+ "Industry/Graneet",
+ "Industry/HI IBERIA",
+ "Industry/IDOM",
+ "Industry/Gauss Fusion GmbH",
+ "National Lab",
+ "National Lab/VTT Technical Research Centre",
+ "National Lab/UKAEA",
+ "National Lab/Pasteur Labs",
+ "National Lab/ORNL",
+ "National Lab/NRNU MEPhI",
+ "National Lab/Idaho National Laboratory",
+ "National Lab/Lawrence Livermore National Lab",
+ "National Lab/LBNL",
+ "National Lab/DIFFER",
+ "National Lab/Canadian Nuclear Laboratories",
+ "National Lab/CEA",
+ "National Lab/Argonne National Laboratory",
+ "National Lab/Meranti Research Laboratories",
+ "Other/ITER RF Domestic Agency",
+ "Other/ITER Organization",
+ "Other",
+ "Other/Fusion for Energy",
+ "Other/IAEA",
+ "University/Regional Institute of Education",
+ "University/Rensselaer Polytechnic Institute",
+ "University/Rosatom, Institution \"Project Center ITER\"",
+ "University/SPC-EPFL",
+ "University/Sapienza University of Rome",
+ "University/Texas A&M University",
+ "University/The UM6P Vanguard Center",
+ "University/UOM",
+ "University/UW-Madison",
+ "University/Uni Stuttgart",
+ "University/Aix-Marseille University",
+ "University/University of Manchester",
+ "University/University of Maryland",
+ "University/University of Padua",
+ "University/University of Rochester",
+ "University/University of Rome \"Tor Vergata\" | ENEA Frascati Research Centre",
+ "University/University of Saskatchewan",
+ "University/University of Tennessee",
+ "University/University of York",
+ "University/Victoria University of Wellington",
+ "University/Quaid e Awam University of Engineering Science and Technology Nawabshah",
+ "University/Universitas Gadjah Mada",
+ "University/Princeton University",
+ "University/Politecnico di Milano",
+ "University/Center for Astrophysics | Harvard & Smithsonian",
+ "University/Columbia University",
+ "University/Cornell University",
+ "University/DTU",
+ "University/EPFL",
+ "University/Eindhoven University of Technology",
+ "University/Flatiron Institute",
+ "University/Forschungszentrum Juelich",
+ "University/Ghent University",
+ "University/Imperial College London",
+ "University/Politecnico di Torino",
+ "University/Indiana University Bloomington",
+ "University/KTH Royal Institute of Technology",
+ "University/Lovely Professional University",
+ "University/Marathon Fusion Inc, The University of Bath",
+ "University/Massachusetts Institute of Technology",
+ "University/Max Planck Institute for Plasma Physics",
+ "University/NRC Kurchatov Institute",
+ "University/National Technical University of Athens",
+ "University/Nuclear Institute",
+ "University/PPPL",
+ "University/Peter the Great St.Petersburg Polytechnic University",
+ "University/Institute of Physics Belgrade",
+ "University"
],
- "legendgroup": "",
- "locationmode": "country names",
- "locations": [
- "Australia",
- "Austria",
- "Bangladesh",
- "Belgium",
- "Canada",
- "Denmark",
- "Finland",
- "France",
- "Germany",
- "Greece",
- "Hungary",
- "India",
- "Indonesia",
- "Israel",
- "Italy",
- "Japan",
- "Luxembourg",
- "Morocco",
- "Netherlands",
- "New Zealand",
- "Pakistan",
- "Poland",
- "Russian Federation",
- "Serbia",
- "Singapore",
- "Slovenia",
- "Spain",
- "Sweden",
- "Switzerland",
- "United Kingdom",
- "United States"
+ "labels": [
+ "ASNR",
+ "Next Step Fusion",
+ "NukeHub",
+ "Phd in nuclear physics (2007), currently a tech entrepreneur",
+ "Proxima Fusion",
+ "Renaissance Fusion",
+ "Industry",
+ "Sapientai LLC",
+ "Mercenary",
+ "South Dakota School of Mines & Technology",
+ "Thea Energy",
+ "Tokamak Energy Ltd.",
+ "UK Industrial Fusion Solutions",
+ "Woodruff Scientific Ltd",
+ "nT-Tao",
+ "nTtau Digital LTD",
+ "unaffiliated",
+ "TAE Technologies",
+ "Kyoto Fusioneering UK Ltd",
+ "Rutherford Energy Ventures",
+ "IDOM UK Ltd",
+ "Knudsen",
+ "C3D Engineering Ltd.",
+ "CFS",
+ "Cerberus Nuclear",
+ "Cosylab d.d.",
+ "EX-Fusion Inc.",
+ "FS Dynamics",
+ "First Light Fusion",
+ "ATG Engineering S.L.",
+ "Gen-F",
+ "General Atomics",
+ "General Fusion Inc.",
+ "Google DeepMind",
+ "Graneet",
+ "HI IBERIA",
+ "IDOM",
+ "Gauss Fusion GmbH",
+ "National Lab",
+ "VTT Technical Research Centre",
+ "UKAEA",
+ "Pasteur Labs",
+ "ORNL",
+ "NRNU MEPhI",
+ "Idaho National Laboratory",
+ "Lawrence Livermore National Lab",
+ "LBNL",
+ "DIFFER",
+ "Canadian Nuclear Laboratories",
+ "CEA",
+ "Argonne National Laboratory",
+ "Meranti Research Laboratories",
+ "ITER RF Domestic Agency",
+ "ITER Organization",
+ "Other",
+ "Fusion for Energy",
+ "IAEA",
+ "Regional Institute of Education",
+ "Rensselaer Polytechnic Institute",
+ "Rosatom, Institution \"Project Center ITER\"",
+ "SPC-EPFL",
+ "Sapienza University of Rome",
+ "Texas A&M University",
+ "The UM6P Vanguard Center",
+ "UOM",
+ "UW-Madison",
+ "Uni Stuttgart",
+ "Aix-Marseille University",
+ "University of Manchester",
+ "University of Maryland",
+ "University of Padua",
+ "University of Rochester",
+ "University of Rome \"Tor Vergata\" | ENEA Frascati Research Centre",
+ "University of Saskatchewan",
+ "University of Tennessee",
+ "University of York",
+ "Victoria University of Wellington",
+ "Quaid e Awam University of Engineering Science and Technology Nawabshah",
+ "Universitas Gadjah Mada",
+ "Princeton University",
+ "Politecnico di Milano",
+ "Center for Astrophysics | Harvard & Smithsonian",
+ "Columbia University",
+ "Cornell University",
+ "DTU",
+ "EPFL",
+ "Eindhoven University of Technology",
+ "Flatiron Institute",
+ "Forschungszentrum Juelich",
+ "Ghent University",
+ "Imperial College London",
+ "Politecnico di Torino",
+ "Indiana University Bloomington",
+ "KTH Royal Institute of Technology",
+ "Lovely Professional University",
+ "Marathon Fusion Inc, The University of Bath",
+ "Massachusetts Institute of Technology",
+ "Max Planck Institute for Plasma Physics",
+ "NRC Kurchatov Institute",
+ "National Technical University of Athens",
+ "Nuclear Institute",
+ "PPPL",
+ "Peter the Great St.Petersburg Polytechnic University",
+ "Institute of Physics Belgrade",
+ "University"
],
"marker": {
- "color": "#636efa",
- "size": [
- 1,
- 1,
- 1,
- 2,
- 6,
- 3,
- 5,
- 12,
- 16,
- 1,
- 1,
- 2,
- 1,
- 2,
- 13,
- 1,
- 3,
- 1,
- 5,
- 1,
- 1,
- 1,
- 5,
- 1,
- 1,
- 1,
- 15,
- 1,
- 2,
- 55,
- 59
- ],
- "sizemode": "area",
- "sizeref": 0.0236,
- "symbol": "circle"
+ "colors": [
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#f8d068",
+ "#482840",
+ "#482840",
+ "#482840",
+ "#482840",
+ "#482840",
+ "#482840",
+ "#482840",
+ "#482840",
+ "#482840",
+ "#482840",
+ "#482840",
+ "#482840",
+ "#482840",
+ "#482840",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#e8d0a8",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850",
+ "#f87850"
+ ]
},
- "mode": "markers",
"name": "",
- "showlegend": false,
- "type": "scattergeo"
+ "parents": [
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "Industry",
+ "",
+ "National Lab",
+ "National Lab",
+ "National Lab",
+ "National Lab",
+ "National Lab",
+ "National Lab",
+ "National Lab",
+ "National Lab",
+ "National Lab",
+ "National Lab",
+ "National Lab",
+ "National Lab",
+ "National Lab",
+ "Other",
+ "Other",
+ "",
+ "Other",
+ "Other",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ "University",
+ ""
+ ],
+ "type": "treemap",
+ "values": {
+ "bdata": "AAAAAAAA8D8AAAAAAAAQQAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAgQAAAAAAAAPA/AAAAAABAUkAAAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAAAIQAAAAAAAAABAAAAAAAAAGEAAAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAABAAAAAAAAA8D8AAAAAAADwPwAAAAAAABRAAAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAAhAAAAAAAAAAEAAAAAAAAAUQAAAAAAAAAhAAAAAAAAA8D8AAAAAAADwPwAAAAAAABBAAAAAAAAAAEAAAAAAAADwPwAAAAAAAEpAAAAAAAAAEEAAAAAAAAA2QAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAABBAAAAAAAAA8D8AAAAAAAAgQAAAAAAAAABAAAAAAAAA8D8AAAAAAAAIQAAAAAAAAABAAAAAAAAA8D8AAAAAAADwPwAAAAAAAAhAAAAAAAAAIkAAAAAAAAAQQAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAIQAAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAABAAAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAGEAAAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAAhAAAAAAAAA8D8AAAAAAAAAQAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAAhAAAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/AAAAAAAAFEAAAAAAAAAcQAAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAIkAAAAAAAAAUQAAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAFVA",
+ "dtype": "f8"
+ }
}
],
"layout": {
- "font": {
- "color": "black",
- "family": "Coolvetica"
- },
- "geo": {
- "center": {},
- "domain": {
- "x": [
- 0,
- 1
- ],
- "y": [
- 0,
- 1
- ]
- },
- "projection": {
- "type": "natural earth"
- },
- "showcoastlines": true,
- "showframe": false
- },
"legend": {
- "itemsizing": "constant",
"tracegroupgap": 0
},
"margin": {
@@ -3902,57 +5704,6 @@
"type": "heatmap"
}
],
- "heatmapgl": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 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,
- "#f0f921"
- ]
- ],
- "type": "heatmapgl"
- }
- ],
"histogram": [
{
"marker": {
@@ -4153,6 +5904,17 @@
"type": "scattergl"
}
],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
"scattermapbox": [
{
"marker": {
@@ -4540,76 +6302,62 @@
}
}
}
- },
- "text/html": [
- ""
- ]
+ }
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
- "# Create a bubble chart on a map\n",
- "# count by country and not institution\n",
- "\n",
- "# keep only Country and Count columns\n",
- "df2 = df[[\"Country\", \"count\"]]\n",
- "\n",
- "# sum\n",
- "df2 = df2.groupby(\"Country\").sum().reset_index()\n",
+ "# treemap grouped by Type\n",
+ "df_new = df.groupby([\"Type\", \"Institution\"])[\"count\"].sum().reset_index(name=\"Count\")\n",
"\n",
- "# df2[\"color\"] = df2[\"Continent\"].map(color_map)\n",
"\n",
- "fig = px.scatter_geo(\n",
- " df2,\n",
- " locations=\"Country\",\n",
- " locationmode=\"country names\",\n",
- " size=\"count\",\n",
- " hover_name=\"Country\",\n",
- " hover_data={\"count\": True, \"Country\": False},\n",
- " projection=\"natural earth\",\n",
- " size_max=50,\n",
- ")\n",
+ "color_map = {\n",
+ " 'University': mcolors.to_hex(cmap(0)),\n",
+ " 'Industry': mcolors.to_hex(cmap(1)),\n",
+ " 'National Lab': mcolors.to_hex(cmap(2)),\n",
+ " 'Other': mcolors.to_hex(cmap(3)),\n",
+ "}\n",
"\n",
- "# Update layout for better visualization\n",
- "fig.update_layout(\n",
- " # title=\"Registrations per Country\",\n",
- " geo=dict(showframe=False, showcoastlines=True),\n",
- " font=dict(family=\"Coolvetica\", color=\"black\"),\n",
- ")\n",
+ "fig = px.treemap(df_new, path=['Type', 'Institution'], values='Count', color='Type', color_discrete_map=color_map,)\n",
"\n",
- "fig"
+ "fig.show()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "tags": [
+ "hide-input"
+ ]
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Number of unique institutions: 101\n",
+ "Percentage of universities: 46.53%\n",
+ "Percentage of industry: 36.63%\n",
+ "Percentage of national labs: 12.87%\n",
+ "Percentage of other institutions: 3.96%\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(f\"Number of unique institutions: {len(df_new['Institution'].unique())}\")\n",
+ "print(f\"Percentage of universities: {len(df_new[df_new['Type'] == 'University']) / len(df_new):.2%}\")\n",
+ "print(f\"Percentage of industry: {len(df_new[df_new['Type'] == 'Industry']) / len(df_new):.2%}\")\n",
+ "print(f\"Percentage of national labs: {len(df_new[df_new['Type'] == 'National Lab']) / len(df_new):.2%}\")\n",
+ "print(f\"Percentage of other institutions: {len(df_new[df_new['Type'] == 'Other']) / len(df_new):.2%}\")"
]
}
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "fusion_papers",
"language": "python",
"name": "python3"
},
@@ -4623,7 +6371,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.12.1"
+ "version": "3.13.5"
}
},
"nbformat": 4,