collab/mermaid/docs/syntax/sankey.mdblame
View source
6dd74de1> **Warning**
6dd74de2>
6dd74de3> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
6dd74de4>
6dd74de5> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/sankey.md](../../packages/mermaid/src/docs/syntax/sankey.md).
6dd74de6
6dd74de7# Sankey diagram (v10.3.0+)
6dd74de8
6dd74de9> A sankey diagram is a visualization used to depict a flow from one set of values to another.
6dd74de10
6dd74de11> **Warning**
6dd74de12> This is an experimental diagram. Its syntax are very close to plain CSV, but it is to be extended in the nearest future.
6dd74de13
6dd74de14The things being connected are called nodes and the connections are called links.
6dd74de15
6dd74de16## Example
6dd74de17
6dd74de18This example taken from [observable](https://observablehq.com/@d3/sankey/2?collection=@d3/d3-sankey). It may be rendered a little bit differently, though, in terms of size and colors.
6dd74de19
6dd74de20```mermaid-example
6dd74de21---
6dd74de22config:
6dd74de23 sankey:
6dd74de24 showValues: false
6dd74de25---
6dd74de26sankey
6dd74de27
6dd74de28Agricultural 'waste',Bio-conversion,124.729
6dd74de29Bio-conversion,Liquid,0.597
6dd74de30Bio-conversion,Losses,26.862
6dd74de31Bio-conversion,Solid,280.322
6dd74de32Bio-conversion,Gas,81.144
6dd74de33Biofuel imports,Liquid,35
6dd74de34Biomass imports,Solid,35
6dd74de35Coal imports,Coal,11.606
6dd74de36Coal reserves,Coal,63.965
6dd74de37Coal,Solid,75.571
6dd74de38District heating,Industry,10.639
6dd74de39District heating,Heating and cooling - commercial,22.505
6dd74de40District heating,Heating and cooling - homes,46.184
6dd74de41Electricity grid,Over generation / exports,104.453
6dd74de42Electricity grid,Heating and cooling - homes,113.726
6dd74de43Electricity grid,H2 conversion,27.14
6dd74de44Electricity grid,Industry,342.165
6dd74de45Electricity grid,Road transport,37.797
6dd74de46Electricity grid,Agriculture,4.412
6dd74de47Electricity grid,Heating and cooling - commercial,40.858
6dd74de48Electricity grid,Losses,56.691
6dd74de49Electricity grid,Rail transport,7.863
6dd74de50Electricity grid,Lighting & appliances - commercial,90.008
6dd74de51Electricity grid,Lighting & appliances - homes,93.494
6dd74de52Gas imports,Ngas,40.719
6dd74de53Gas reserves,Ngas,82.233
6dd74de54Gas,Heating and cooling - commercial,0.129
6dd74de55Gas,Losses,1.401
6dd74de56Gas,Thermal generation,151.891
6dd74de57Gas,Agriculture,2.096
6dd74de58Gas,Industry,48.58
6dd74de59Geothermal,Electricity grid,7.013
6dd74de60H2 conversion,H2,20.897
6dd74de61H2 conversion,Losses,6.242
6dd74de62H2,Road transport,20.897
6dd74de63Hydro,Electricity grid,6.995
6dd74de64Liquid,Industry,121.066
6dd74de65Liquid,International shipping,128.69
6dd74de66Liquid,Road transport,135.835
6dd74de67Liquid,Domestic aviation,14.458
6dd74de68Liquid,International aviation,206.267
6dd74de69Liquid,Agriculture,3.64
6dd74de70Liquid,National navigation,33.218
6dd74de71Liquid,Rail transport,4.413
6dd74de72Marine algae,Bio-conversion,4.375
6dd74de73Ngas,Gas,122.952
6dd74de74Nuclear,Thermal generation,839.978
6dd74de75Oil imports,Oil,504.287
6dd74de76Oil reserves,Oil,107.703
6dd74de77Oil,Liquid,611.99
6dd74de78Other waste,Solid,56.587
6dd74de79Other waste,Bio-conversion,77.81
6dd74de80Pumped heat,Heating and cooling - homes,193.026
6dd74de81Pumped heat,Heating and cooling - commercial,70.672
6dd74de82Solar PV,Electricity grid,59.901
6dd74de83Solar Thermal,Heating and cooling - homes,19.263
6dd74de84Solar,Solar Thermal,19.263
6dd74de85Solar,Solar PV,59.901
6dd74de86Solid,Agriculture,0.882
6dd74de87Solid,Thermal generation,400.12
6dd74de88Solid,Industry,46.477
6dd74de89Thermal generation,Electricity grid,525.531
6dd74de90Thermal generation,Losses,787.129
6dd74de91Thermal generation,District heating,79.329
6dd74de92Tidal,Electricity grid,9.452
6dd74de93UK land based bioenergy,Bio-conversion,182.01
6dd74de94Wave,Electricity grid,19.013
6dd74de95Wind,Electricity grid,289.366
6dd74de96```
6dd74de97
6dd74de98```mermaid
6dd74de99---
6dd74de100config:
6dd74de101 sankey:
6dd74de102 showValues: false
6dd74de103---
6dd74de104sankey
6dd74de105
6dd74de106Agricultural 'waste',Bio-conversion,124.729
6dd74de107Bio-conversion,Liquid,0.597
6dd74de108Bio-conversion,Losses,26.862
6dd74de109Bio-conversion,Solid,280.322
6dd74de110Bio-conversion,Gas,81.144
6dd74de111Biofuel imports,Liquid,35
6dd74de112Biomass imports,Solid,35
6dd74de113Coal imports,Coal,11.606
6dd74de114Coal reserves,Coal,63.965
6dd74de115Coal,Solid,75.571
6dd74de116District heating,Industry,10.639
6dd74de117District heating,Heating and cooling - commercial,22.505
6dd74de118District heating,Heating and cooling - homes,46.184
6dd74de119Electricity grid,Over generation / exports,104.453
6dd74de120Electricity grid,Heating and cooling - homes,113.726
6dd74de121Electricity grid,H2 conversion,27.14
6dd74de122Electricity grid,Industry,342.165
6dd74de123Electricity grid,Road transport,37.797
6dd74de124Electricity grid,Agriculture,4.412
6dd74de125Electricity grid,Heating and cooling - commercial,40.858
6dd74de126Electricity grid,Losses,56.691
6dd74de127Electricity grid,Rail transport,7.863
6dd74de128Electricity grid,Lighting & appliances - commercial,90.008
6dd74de129Electricity grid,Lighting & appliances - homes,93.494
6dd74de130Gas imports,Ngas,40.719
6dd74de131Gas reserves,Ngas,82.233
6dd74de132Gas,Heating and cooling - commercial,0.129
6dd74de133Gas,Losses,1.401
6dd74de134Gas,Thermal generation,151.891
6dd74de135Gas,Agriculture,2.096
6dd74de136Gas,Industry,48.58
6dd74de137Geothermal,Electricity grid,7.013
6dd74de138H2 conversion,H2,20.897
6dd74de139H2 conversion,Losses,6.242
6dd74de140H2,Road transport,20.897
6dd74de141Hydro,Electricity grid,6.995
6dd74de142Liquid,Industry,121.066
6dd74de143Liquid,International shipping,128.69
6dd74de144Liquid,Road transport,135.835
6dd74de145Liquid,Domestic aviation,14.458
6dd74de146Liquid,International aviation,206.267
6dd74de147Liquid,Agriculture,3.64
6dd74de148Liquid,National navigation,33.218
6dd74de149Liquid,Rail transport,4.413
6dd74de150Marine algae,Bio-conversion,4.375
6dd74de151Ngas,Gas,122.952
6dd74de152Nuclear,Thermal generation,839.978
6dd74de153Oil imports,Oil,504.287
6dd74de154Oil reserves,Oil,107.703
6dd74de155Oil,Liquid,611.99
6dd74de156Other waste,Solid,56.587
6dd74de157Other waste,Bio-conversion,77.81
6dd74de158Pumped heat,Heating and cooling - homes,193.026
6dd74de159Pumped heat,Heating and cooling - commercial,70.672
6dd74de160Solar PV,Electricity grid,59.901
6dd74de161Solar Thermal,Heating and cooling - homes,19.263
6dd74de162Solar,Solar Thermal,19.263
6dd74de163Solar,Solar PV,59.901
6dd74de164Solid,Agriculture,0.882
6dd74de165Solid,Thermal generation,400.12
6dd74de166Solid,Industry,46.477
6dd74de167Thermal generation,Electricity grid,525.531
6dd74de168Thermal generation,Losses,787.129
6dd74de169Thermal generation,District heating,79.329
6dd74de170Tidal,Electricity grid,9.452
6dd74de171UK land based bioenergy,Bio-conversion,182.01
6dd74de172Wave,Electricity grid,19.013
6dd74de173Wind,Electricity grid,289.366
6dd74de174```
6dd74de175
6dd74de176## Syntax
6dd74de177
6dd74de178The idea behind syntax is that a user types `sankey` keyword first, then pastes raw CSV below and get the result.
6dd74de179
6dd74de180It implements CSV standard as [described here](https://www.ietf.org/rfc/rfc4180.txt) with subtle **differences**:
6dd74de181
6dd74de182- CSV must contain **3 columns only**
6dd74de183- It is **allowed** to have **empty lines** without comma separators for visual purposes
6dd74de184
6dd74de185### Basic
6dd74de186
6dd74de187It is implied that 3 columns inside CSV should represent `source`, `target` and `value` accordingly:
6dd74de188
6dd74de189```mermaid-example
6dd74de190sankey
6dd74de191
6dd74de192%% source,target,value
6dd74de193Electricity grid,Over generation / exports,104.453
6dd74de194Electricity grid,Heating and cooling - homes,113.726
6dd74de195Electricity grid,H2 conversion,27.14
6dd74de196```
6dd74de197
6dd74de198```mermaid
6dd74de199sankey
6dd74de200
6dd74de201%% source,target,value
6dd74de202Electricity grid,Over generation / exports,104.453
6dd74de203Electricity grid,Heating and cooling - homes,113.726
6dd74de204Electricity grid,H2 conversion,27.14
6dd74de205```
6dd74de206
6dd74de207### Empty Lines
6dd74de208
6dd74de209CSV does not support empty lines without comma delimiters by default. But you can add them if needed:
6dd74de210
6dd74de211```mermaid-example
6dd74de212sankey
6dd74de213
6dd74de214Bio-conversion,Losses,26.862
6dd74de215
6dd74de216Bio-conversion,Solid,280.322
6dd74de217
6dd74de218Bio-conversion,Gas,81.144
6dd74de219```
6dd74de220
6dd74de221```mermaid
6dd74de222sankey
6dd74de223
6dd74de224Bio-conversion,Losses,26.862
6dd74de225
6dd74de226Bio-conversion,Solid,280.322
6dd74de227
6dd74de228Bio-conversion,Gas,81.144
6dd74de229```
6dd74de230
6dd74de231### Commas
6dd74de232
6dd74de233If you need to have a comma, wrap it in double quotes:
6dd74de234
6dd74de235```mermaid-example
6dd74de236sankey
6dd74de237
6dd74de238Pumped heat,"Heating and cooling, homes",193.026
6dd74de239Pumped heat,"Heating and cooling, commercial",70.672
6dd74de240```
6dd74de241
6dd74de242```mermaid
6dd74de243sankey
6dd74de244
6dd74de245Pumped heat,"Heating and cooling, homes",193.026
6dd74de246Pumped heat,"Heating and cooling, commercial",70.672
6dd74de247```
6dd74de248
6dd74de249### Double Quotes
6dd74de250
6dd74de251If you need to have double quote, put a pair of them inside quoted string:
6dd74de252
6dd74de253```mermaid-example
6dd74de254sankey
6dd74de255
6dd74de256Pumped heat,"Heating and cooling, ""homes""",193.026
6dd74de257Pumped heat,"Heating and cooling, ""commercial""",70.672
6dd74de258```
6dd74de259
6dd74de260```mermaid
6dd74de261sankey
6dd74de262
6dd74de263Pumped heat,"Heating and cooling, ""homes""",193.026
6dd74de264Pumped heat,"Heating and cooling, ""commercial""",70.672
6dd74de265```
6dd74de266
6dd74de267## Configuration
6dd74de268
6dd74de269You can customize link colors, node alignments and diagram dimensions.
6dd74de270
6dd74de271```html
6dd74de272<script>
6dd74de273 const config = {
6dd74de274 startOnLoad: true,
6dd74de275 securityLevel: 'loose',
6dd74de276 sankey: {
6dd74de277 width: 800,
6dd74de278 height: 400,
6dd74de279 linkColor: 'source',
6dd74de280 nodeAlignment: 'left',
6dd74de281 },
6dd74de282 };
6dd74de283 mermaid.initialize(config);
6dd74de284</script>
6dd74de285```
6dd74de286
6dd74de287### Links Coloring
6dd74de288
6dd74de289You can adjust links' color by setting `linkColor` to one of those:
6dd74de290
6dd74de291- `source` - link will be of a source node color
6dd74de292- `target` - link will be of a target node color
6dd74de293- `gradient` - link color will be smoothly transient between source and target node colors
6dd74de294- hex code of color, like `#a1a1a1`
6dd74de295
6dd74de296### Node Alignment
6dd74de297
6dd74de298Graph layout can be changed by setting `nodeAlignment` to:
6dd74de299
6dd74de300- `justify`
6dd74de301- `center`
6dd74de302- `left`
6dd74de303- `right`
6dd74de304
6dd74de305<!--- cspell:ignore Ngas bioenergy biofuel --->