U.S Solar Employment Growth
by stitot
HTML
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/series-label.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
<script src="https://code.highcharts.com/modules/export-data.js"></script>
<script src="https://code.highcharts.com/dashboards/datagrid.js"></script>
<figure class="highcharts-figure">
<div id="container"></div>
<div id="datagrid"></div>
</figure>
CSS
@import url("https://code.highcharts.com/dashboards/css/datagrid.css");
.highcharts-figure,
.highcharts-data-table table {
min-width: 360px;
max-width: 800px;
margin: 1em auto;
}
.highcharts-data-table table {
font-family: Verdana, sans-serif;
border-collapse: collapse;
border: 1px solid #ebebeb;
margin: 10px auto;
text-align: center;
width: 100%;
max-width: 500px;
}
.highcharts-data-table caption {
padding: 1em 0;
font-size: 1.2em;
color: #555;
}
.highcharts-data-table th {
font-weight: 600;
padding: 0.5em;
}
.highcharts-data-table td,
.highcharts-data-table th,
.highcharts-data-table caption {
padding: 0.5em;
}
.highcharts-data-table thead tr,
.highcharts-data-table tr:nth-child(even) {
background: #f8f8f8;
}
.highcharts-data-table tr:hover {
background: #f1f7ff;
}
.highcharts-description {
margin: 0.3rem 10px;
}
#datagrid {
height: 380px;
margin: 8px;
}
JavaScript
Highcharts.chart("container", {
title: {
text: "U.S Solar Employment Growth",
align: "left",
},
subtitle: {
text: 'By Job Category. Source: <a href="https://irecusa.org/programs/solar-jobs-census/" target="_blank">IREC</a>.',
align: "left",
},
exporting: {
menuItemDefinitions: {
// Custom definition
viewData: {
onclick: function () {
const data = this.getDataRows();
const modifiedData = data[0].map((name, colIndex) => data.map(row => row[colIndex]));
DataGrid.dataGrid("datagrid", {
columnDefaults: {
cells: {
editable: true
}
},
dataTable: {
columns: modifiedData.reduce((acc, row) => {
acc[row[0]] = row.slice(1);
return acc;
}, {})
},
columns: [{
id: "Other",
cells: {
format: "{value}%"
}
}]
})
},
text: "View Data using Grid",
},
},
},
yAxis: {
title: {
text: "Number of Employees",
},
},
xAxis: {
accessibility: {
rangeDescription: "Range: 2010 to 2022",
},
},
legend: {
layout: "vertical",
align: "right",
verticalAlign: "middle",
},
plotOptions: {
series: {
label: {
connectorAllowed: false,
},
pointStart: 2010,
},
},
series: [
{
name: "Installation & Developers",
data: [
43934, 48656, 65165, 81827, 112143, 142383, 171533, 165174, 155157,
161454, 154610, 168960, 171558,
],
},
{
name: "Manufacturing",
data: [
24916, 37941, 29742, 29851, 32490, 30282, 38121, 36885, 33726, 34243,
31050, 33099, 33473,
],
},
{
name: "Sales & Distribution",
data: [
11744, 30000, 16005, 19771, 20185, 24377, 32147, 30912, 29243, 29213,
...