背景
桑基图作为1种表达数据流动方向的可视化方式,在商业数据分析,地理可视化,生物医学领域有着广泛应用。比如:在基因组学领域,有研究利用桑基图来表示生物分子之间的调控关系。
目前多数桑基图软件包(如plotly等)大多数调用了d3.js,它允许提供一些可交互操作,但安装和使用的参数设定有一定不便利。
matplotlib是python内最为流行的一个可视化库,提供大量的操作接口,其绘制的图片可以达到文章发表级别,美观程度不亚于ggplot2。然而,matplotlib并没有提供一些高级绘图函数接口,需要用户对matplotlib非常熟悉才能绘制出定制化程度高的图。
一些高级封装库,如:Seaborn封装了matplotlib,有助于降低用户使用难度,绘制高级的图片,且允许用户后期调用matplotlib api自由修改。但seaborn依然没有桑基图绘制。
介于此,本人基于matplotlib开发了一个简单的桑基图绘制程序pysankey2,它能够绘制多层桑基图,并允许用户自由的设定一些参数,熟悉matplotlib也可以后期进行修图。
下面介绍如何利用pysankey2来绘制桑基图。
安装
下载后,打开操作系统的命令行界面,cd到存放该压缩包的目录,然后利用pip就能完成安装:
cd path/to/your/directory
pip install pysankey2-0.1.0.zip
3行代码绘制一个2层桑基图
我们基于内置的数据集进行快速绘制:
from pysankey2.datasets import loa