SankeyPlots.jl

A Sankey Diagram recipe for Plots.jl
Author daschw
Popularity
13 Stars
Updated Last
1 Year Ago
Started In
February 2021

SankeyPlots Build Status

This package provides a Plots.jl recipe for Sankey diagrams.

Installation

julia> ]

pkg> add SankeyPlots

Usage

using SankeyPlots

src = [1, 1, 1, 1, 2, 2, 2, 3, 4, 5]
dst = [6, 3, 7, 4, 3, 7, 4, 7, 8, 8]
weights = [0.1, 0.3, 0.5, 0.5, 0.2, 2.8, 1, 0.45, 4.5, 3.3]

sankey(src, dst, weights)

In addition to Plots.jl attributes the following keyword arguments are supported.

Keyword argument Default value Options
node_labels nothing AbstractVector{<:String}
node_colors nothing Vector of color specifications supported by Plots.jl or color palette
edge_color :gray Plots.jl supported color or color selection from connected nodes with :src, :dst or :gradient
label_position :inside :legend, :node, :left, :right, :top or :bottom
label_size 8 Int
compact false Bool
names = [
    "PV",
    "Electricity Buy",
    "Battery",
    "Heat pump",
    "Biomass",
    "Electricity Sell",
    "Electricity Demand",
    "Heat demand",
]
energy_colors = palette(:seaborn_colorblind)[[9, 10, 3, 5, 2, 8, 1, 4]]

sankey(
    src, dst, weights;
    node_labels=names,
    node_colors=energy_colors,
    edge_color=:gradient,
    label_position=:bottom,
    label_size=7,
    compact=true,
)

Acknowledgement

@oxinabox made this possible by implementing the algorithm that solves the layout in LayeredLayouts.jl.

Used By Packages

No packages found.