Visualize financial data with Sankey diagrams in python

Sankey diagrams are a great, yet often overlooked method of visualizing important data such as: resource management and usage, financial data such as income and investments, time management and allocation, expenses and much more!

For example, let’s take a SaaS company(let’s call it and Josh, the CEO wants to see the company’s monthly income, profit, expenses, and money management. We can give him an easy way of visualizing all those with a Sankey diagram:

As you can see, this Sankey diagram gives Josh a simple and effective way of visualizing his company’s monthly income, profit, expenses, and money management.

Building your own!

If you just want the code, here it is( even though I advise that you stick around for the explanation because it might be difficult to understand from the beginning ):

import plotly.graph_objects as gofig = go.Figure(data=[go.Sankey(
node = dict(
thickness = 5,
label = ["Ads", "Net profit", "Total income", "ROI", "Paid services", "Investment", "Expenses", "Maintaining website", "Paying employes", "Advertising", "Personal expenses", "Savings"],
color = "cyan"
link = dict(
# indices correspond to labels
source = [0, 1, 4, 2, 3, 2, 6, 6, 6, 1, 1],
target = [2, 5, 2, 1, 2, 6, 7, 8, 9, 10, 11],
value = [60000, 40000, 90000, 100000, 10000, 60000, 10000, 30000, 20000, 20000, 40000]
title=" monthly income and income management of 2021( in USD )",
font=dict(size = 12, color = 'black')

Let’s make sense of all this

  • First, we import “plotly.graph_objects” as “go”.
  • Define “fig”, this will be our Sankey diagram.
  • Characterize the parts of our Sankey diagram with: thickness, color, and labels.
  • Next, we define how and where the labels should connect to or disconnect from, as well as the value of each label. (The numbers on “source” and “target” are indices of the labels array).
  • Finally, we give our diagram a title colored black with a size of 12.

So there’s that, a great and versatile yet underrated way of visualizing data in python.




Writing about programming stuff

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Looks Matter: How to Judge books by their covers; CXL Review Week 8

The Most Mysterious Company on the Stock Market

Introduction to Data Science at Trainline

Visualize the Netflix stock data using Python

IMP Is Back

Human Data Interaction in Meteorology: The Decision-Making Behind Our Forecasts

Data Science Weekly Issue 2

Pointwise, Pairswise and Listwise Learning to Rank Models — Three Approaches to Optimize Relative…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


Writing about programming stuff

More from Medium

Automated Study & Health tracking with Python

Scrape Google Books Ngrams Viewer in Python

Deciding who the Tennis GOAT is with the help of Python

Recode data in Python