Estimated US Energy Consumption in 2022

HTML

<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/sankey.js"></script>
<script src="https://code.highcharts.com/modules/non-cartesian-zoom.js"></script>
<script src="https://code.highcharts.com/modules/mouse-wheel-zoom.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/modules/accessibility.js"></script>
<script src="https://code.highcharts.com/themes/adaptive.js"></script>

<figure class="highcharts-figure">
    <div id="container"></div>
    <p class="highcharts-description">
        Sankey charts are used to visualize data flow and volume
        between nodes. The wider lines indicate larger volumes.
    </p>
</figure>

CSS

body {
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        "Apple Color Emoji",
        "Segoe UI Emoji",
        "Segoe UI Symbol",
        sans-serif;
    background: var(--highcharts-background-color);
    color: var(--highcharts-neutral-color-100);
}

#csv {
    display: none;
}

.highcharts-figure,
.highcharts-data-table table {
    min-width: 310px;
    max-width: 800px;
    margin: 1em auto;
}

.highcharts-data-table table {
    font-family: Verdana, sans-serif;
    border-collapse: collapse;
    border: 1px solid var(--highcharts-neutral-color-10, #e6e6e6);
    margin: 10px auto;
    text-align: center;
    width: 100%;
    max-width: 500px;
}

.highcharts-data-table caption {
    padding: 1em 0;
    font-size: 1.2em;
    color: var(--highcharts-neutral-color-60, #666);
}

.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 tbody tr:nth-child(even) {
    background: var(--highcharts-neutral-color-3, #f7f7f7);
}

.highcharts-description {
    margin: 0.3rem 10px;
}

JavaScript

const data = `source;target;value
Week 1: Inactive;Week 0: Inactive;16260
Week 1: Irregular;Week 0: Inactive;228
Week 1: Irregular;Week 0: Irregular;88
Week 1: Regular;Week 0: Inactive;25
Week 1: Regular;Week 0: Irregular;115
Week 1: Regular;Week 0: Regular;20
Week 1: SActive;Week 0: Irregular;21
Week 1: SActive;Week 0: Regular;20
Week 1: Very Active;Week 0: Regular;13
Week 2: Inactive;Week 1: Inactive;16064
Week 2: Inactive;Week 1: Irregular;14
Week 2: Inactive;Week 1: Regular;1
Week 2: Irregular;Week 1: Inactive;190
Week 2: Irregular;Week 1: Irregular;193
Week 2: Irregular;Week 1: Regular;20
Week 2: Irregular;Week 1: SActive;1
Week 2: Regular;Week 1: Inactive;6
Week 2: Regular;Week 1: Irregular;101
Week 2: Regular;Week 1: Regular;43
Week 2: Regular;Week 1: SActive;5
Week 2: SActive;Week 1: Irregular;8
Week 2: SActive;Week 1: Regular;65
Week 2: SActive;Week 1: SActive;8
Week 2: SActive;Week 1: Very Active;3
Week 2: Very Active;Week 1: Regular;31
Week 2: Very Active;Week 1: SActive;27
Week 2: Very Active;Week 1: Very Active;10
Week 3: Inactive;Week 2: Inactive;15887
Week 3: Inactive;Week 2: Irregular;129
Week 3: Inactive;Week 2: Regular;4
Week 3: Irregular;Week 2: Inactive;184
Week 3: Irregular;Week 2: Irregular;205
Week 3: Irregular;Week 2: Regular;52
Week 3: Irregular;Week 2: SActive;4
Week 3: Regular;Week 2: Inactive;8
Week 3: Regular;Week 2: Irregular;62
Week 3: Regular;Week 2: Regular;62
Week 3: Regular;Week 2: SActive;17
Week 3: Regular;Week 2: Very Active;4
Week 3: SActive;Week 2: Irregular;8
Week 3: SActive;Week 2: Regular;33
Week 3: SActive;Week 2: SActive;51
Week 3: SActive;Week 2: Very Active;9
Week 3: Very Active;Week 2: Regular;4
Week 3: Very Active;Week 2: SActive;12
Week 3: Very Active;Week 2: Very Active;55
Week 4: Inactive;Week 3: Inactive;15833
Week 4: Inactive;Week 3: Irregular;120
Week 4: Inactive;Week 3: Regular;6
Week 4: Irregular;Week 3: Inactive;178
Week 4: Irregular;Week 3:...