#Sankey
#能源流向图形桑基图
由 Sankey spec 反推得到的 VSeed 示例。每条链路被还原为一行 tidyData,source 和 target 使用节点名称,value 表示流量大小。示例同时开启 tooltip 与图例,支持 hover 高亮和图例筛选交互。
import { VSeedRender } from '@components'
export default () => {
const vseedConfig = {
"chartType": "sankey",
"dataset": [
{
"sourceNode": "Agricultural 'waste'",
"targetNode": "Bio-conversion",
"value": 124.729
},
{
"sourceNode": "Bio-conversion",
"targetNode": "Liquid",
"value": 0.597
},
{
"sourceNode": "Bio-conversion",
"targetNode": "Losses",
"value": 26.862
},
{
"sourceNode": "Bio-conversion",
"targetNode": "Solid",
"value": 280.322
},
{
"sourceNode": "Bio-conversion",
"targetNode": "Gas",
"value": 81.144
},
{
"sourceNode": "Biofuel imports",
"targetNode": "Liquid",
"value": 35
},
{
"sourceNode": "Biomass imports",
"targetNode": "Solid",
"value": 35
},
{
"sourceNode": "Coal imports",
"targetNode": "Coal",
"value": 11.606
},
{
"sourceNode": "Coal reserves",
"targetNode": "Coal",
"value": 63.965
},
{
"sourceNode": "Coal",
"targetNode": "Solid",
"value": 75.571
},
{
"sourceNode": "District heating",
"targetNode": "Industry",
"value": 10.639
},
{
"sourceNode": "District heating",
"targetNode": "Heating and cooling - commercial",
"value": 22.505
},
{
"sourceNode": "District heating",
"targetNode": "Heating and cooling - homes",
"value": 46.184
},
{
"sourceNode": "Electricity grid",
"targetNode": "Over generation / exports",
"value": 104.453
},
{
"sourceNode": "Electricity grid",
"targetNode": "Heating and cooling - homes",
"value": 113.726
},
{
"sourceNode": "Electricity grid",
"targetNode": "H2 conversion",
"value": 27.14
},
{
"sourceNode": "Electricity grid",
"targetNode": "Industry",
"value": 342.165
},
{
"sourceNode": "Electricity grid",
"targetNode": "Road transport",
"value": 37.797
},
{
"sourceNode": "Electricity grid",
"targetNode": "Agriculture",
"value": 4.412
},
{
"sourceNode": "Electricity grid",
"targetNode": "Heating and cooling - commercial",
"value": 40.858
},
{
"sourceNode": "Electricity grid",
"targetNode": "Losses",
"value": 56.691
},
{
"sourceNode": "Electricity grid",
"targetNode": "Rail transport",
"value": 7.863
},
{
"sourceNode": "Electricity grid",
"targetNode": "Lighting & appliances - commercial",
"value": 90.008
},
{
"sourceNode": "Electricity grid",
"targetNode": "Lighting & appliances - homes",
"value": 93.494
},
{
"sourceNode": "Gas imports",
"targetNode": "Ngas",
"value": 40.719
},
{
"sourceNode": "Gas reserves",
"targetNode": "Ngas",
"value": 82.233
},
{
"sourceNode": "Gas",
"targetNode": "Heating and cooling - commercial",
"value": 0.129
},
{
"sourceNode": "Gas",
"targetNode": "Losses",
"value": 1.401
},
{
"sourceNode": "Gas",
"targetNode": "Thermal generation",
"value": 151.891
},
{
"sourceNode": "Gas",
"targetNode": "Agriculture",
"value": 2.096
},
{
"sourceNode": "Gas",
"targetNode": "Industry",
"value": 48.58
},
{
"sourceNode": "Geothermal",
"targetNode": "Electricity grid",
"value": 7.013
},
{
"sourceNode": "H2 conversion",
"targetNode": "H2",
"value": 20.897
},
{
"sourceNode": "H2 conversion",
"targetNode": "Losses",
"value": 6.242
},
{
"sourceNode": "H2",
"targetNode": "Road transport",
"value": 20.897
},
{
"sourceNode": "Hydro",
"targetNode": "Electricity grid",
"value": 6.995
},
{
"sourceNode": "Liquid",
"targetNode": "Industry",
"value": 121.066
},
{
"sourceNode": "Liquid",
"targetNode": "International shipping",
"value": 128.69
},
{
"sourceNode": "Liquid",
"targetNode": "Road transport",
"value": 135.835
},
{
"sourceNode": "Liquid",
"targetNode": "Domestic aviation",
"value": 14.458
},
{
"sourceNode": "Liquid",
"targetNode": "International aviation",
"value": 206.267
},
{
"sourceNode": "Liquid",
"targetNode": "Agriculture",
"value": 3.64
},
{
"sourceNode": "Liquid",
"targetNode": "National navigation",
"value": 33.218
},
{
"sourceNode": "Liquid",
"targetNode": "Rail transport",
"value": 4.413
},
{
"sourceNode": "Marine algae",
"targetNode": "Bio-conversion",
"value": 4.375
},
{
"sourceNode": "Ngas",
"targetNode": "Gas",
"value": 122.952
},
{
"sourceNode": "Nuclear",
"targetNode": "Thermal generation",
"value": 839.978
},
{
"sourceNode": "Oil imports",
"targetNode": "Oil",
"value": 504.287
},
{
"sourceNode": "Oil reserves",
"targetNode": "Oil",
"value": 107.703
},
{
"sourceNode": "Oil",
"targetNode": "Liquid",
"value": 611.99
},
{
"sourceNode": "Other waste",
"targetNode": "Solid",
"value": 56.587
},
{
"sourceNode": "Other waste",
"targetNode": "Bio-conversion",
"value": 77.81
},
{
"sourceNode": "Pumped heat",
"targetNode": "Heating and cooling - homes",
"value": 193.026
},
{
"sourceNode": "Pumped heat",
"targetNode": "Heating and cooling - commercial",
"value": 70.672
},
{
"sourceNode": "Solar PV",
"targetNode": "Electricity grid",
"value": 59.901
},
{
"sourceNode": "Solar Thermal",
"targetNode": "Heating and cooling - homes",
"value": 19.263
},
{
"sourceNode": "Solar",
"targetNode": "Solar Thermal",
"value": 19.263
},
{
"sourceNode": "Solar",
"targetNode": "Solar PV",
"value": 59.901
},
{
"sourceNode": "Solid",
"targetNode": "Agriculture",
"value": 0.882
},
{
"sourceNode": "Solid",
"targetNode": "Thermal generation",
"value": 400.12
},
{
"sourceNode": "Solid",
"targetNode": "Industry",
"value": 46.477
},
{
"sourceNode": "Thermal generation",
"targetNode": "Electricity grid",
"value": 525.531
},
{
"sourceNode": "Thermal generation",
"targetNode": "Losses",
"value": 787.129
},
{
"sourceNode": "Thermal generation",
"targetNode": "District heating",
"value": 79.329
},
{
"sourceNode": "Tidal",
"targetNode": "Electricity grid",
"value": 9.452
},
{
"sourceNode": "UK land based bioenergy",
"targetNode": "Bio-conversion",
"value": 182.01
},
{
"sourceNode": "Wave",
"targetNode": "Electricity grid",
"value": 19.013
},
{
"sourceNode": "Wind",
"targetNode": "Electricity grid",
"value": 289.366
}
],
"dimensions": [
{
"id": "sourceNode",
"alias": "Source",
"encoding": "source"
},
{
"id": "targetNode",
"alias": "Target",
"encoding": "target"
}
],
"measures": [
{
"id": "value",
"alias": "Flow"
}
],
"color": {
"colorScheme": [
"#0B6CFF",
"#3B8BFF",
"#00A6A6",
"#4DC3B2",
"#FF8A00",
"#FFB347",
"#7B61FF",
"#B39DFF",
"#4CAF50",
"#8BC34A"
]
},
"label": {
"enable": true,
"showDimension": true,
"showValue": true,
"labelFontSize": 10
},
"tooltip": {
"enable": true
},
"legend": {
"enable": true,
"position": "top",
"maxSize": 2,
"shapeType": "rectRound"
}
}
return <VSeedRender vseed={vseedConfig} />
}#透视图形桑基图
按区域与年份透视后的图形桑基图。区域映射到行,年份映射到列,每个透视单元内展示一张独立的 source-target 流向图。
import { VSeedRender } from '@components'
export default () => {
const vseedConfig = {
"chartType": "sankey",
"dataset": [
{
"region": "East",
"year": "2023",
"sourceNode": "Coal",
"targetNode": "Power",
"value": 120
},
{
"region": "East",
"year": "2023",
"sourceNode": "Solar",
"targetNode": "Power",
"value": 80
},
{
"region": "East",
"year": "2023",
"sourceNode": "Power",
"targetNode": "Industry",
"value": 90
},
{
"region": "East",
"year": "2023",
"sourceNode": "Power",
"targetNode": "Homes",
"value": 70
},
{
"region": "East",
"year": "2024",
"sourceNode": "Coal",
"targetNode": "Power",
"value": 90
},
{
"region": "East",
"year": "2024",
"sourceNode": "Wind",
"targetNode": "Power",
"value": 110
},
{
"region": "East",
"year": "2024",
"sourceNode": "Power",
"targetNode": "Industry",
"value": 85
},
{
"region": "East",
"year": "2024",
"sourceNode": "Power",
"targetNode": "Homes",
"value": 95
},
{
"region": "West",
"year": "2023",
"sourceNode": "Gas",
"targetNode": "Power",
"value": 100
},
{
"region": "West",
"year": "2023",
"sourceNode": "Hydro",
"targetNode": "Power",
"value": 70
},
{
"region": "West",
"year": "2023",
"sourceNode": "Power",
"targetNode": "Industry",
"value": 80
},
{
"region": "West",
"year": "2023",
"sourceNode": "Power",
"targetNode": "Transport",
"value": 60
},
{
"region": "West",
"year": "2024",
"sourceNode": "Gas",
"targetNode": "Power",
"value": 85
},
{
"region": "West",
"year": "2024",
"sourceNode": "Hydro",
"targetNode": "Power",
"value": 95
},
{
"region": "West",
"year": "2024",
"sourceNode": "Power",
"targetNode": "Industry",
"value": 75
},
{
"region": "West",
"year": "2024",
"sourceNode": "Power",
"targetNode": "Transport",
"value": 88
}
],
"dimensions": [
{
"id": "sourceNode",
"alias": "Source",
"encoding": "source"
},
{
"id": "targetNode",
"alias": "Target",
"encoding": "target"
},
{
"id": "region",
"alias": "Region",
"encoding": "row"
},
{
"id": "year",
"alias": "Year",
"encoding": "column"
}
],
"measures": [
{
"id": "value",
"alias": "Flow"
}
],
"color": {
"colorScheme": [
"#0B6CFF",
"#3B8BFF",
"#00A6A6",
"#4DC3B2",
"#FF8A00",
"#FFB347",
"#7B61FF",
"#B39DFF"
]
},
"label": {
"enable": true,
"showDimension": true,
"showValue": true
},
"tooltip": {
"enable": true
},
"legend": {
"enable": true,
"position": "top"
}
}
return <VSeedRender vseed={vseedConfig} />
}