Create sankey diagrams from a (cashflow) Excel sheet.
Returns a plotly plot of your diagram as well as a text file for the popular online diagram builder SankeyMATIC.
See cashflow_randomized.xlsx
as a template spreadsheet file.
import pandas as pd
import plotly.io as pio
pio.renderers.default='browser'
from finSankey import data_prep, sankey_to_text, sankey
# Set corresponding column name from input file to evaluate
column_name = 'Monatsdurchschnitt'
# Plot title
title = 'Cashflow<br>Monthly average'
# Build pandas dataframe from input file
df = pd.read_excel('cashflow_randomized.xlsx',
header=0,
index_col=None)
# Write to text file
income, expenses, df, data, node_labels, link_sources, link_targets, link_vals = data_prep(df, column_name, label_includes_value=False)
sankey_to_text(node_labels, link_sources, link_targets, link_vals)
# Plot diagram using plotly
income, expenses, df, data, node_labels, link_sources, link_targets, link_vals = data_prep(df, column_name)
fig = sankey(data, title)
fig.show()
The resulting text file can be used as an input file on https://sankeymatic.com/.
It follows the simple syntax of Source [Amount] Target
.
Gehalt/Lohn [418.8] Einkünfte
Kapitalerträge [6.2] Einkünfte
Wertpapier-Erträge [4.5] Kapitalerträge
...
Verkehr & Mobilität [11.7] Treibstoff
Einkünfte [119.8] Wohnen
Wohnen [6.0] Nebenkosten
Nebenkosten [6.1] Strom
Wohnen [106.2] Warmmiete