python 画桑基图
桑基图(Sankey Diagram)是一种可视化方法,通经常使用于表示复杂的流程和交互关系。在 Python 中,可使用 matplotlib 库和它的扩大包 matplotlib.sankey 来绘制桑基图。下面,我们来看一下如何利用 Python 画出一个简单的桑基图。
import matplotlib.pyplot as plt from matplotlib.sankey import Sankey # 定义桑基图的流程 flows = [120, 80, 50, 30] labels = ['流程一', '流程二', '流程三', '流程四'] # 定义桑基图的流向 links = [ (0, 1, 60), (1, 2, 40), (2, 3, 20), (0, 3, 60) ] # 创建一个 Sankey 图形对象 sankey = Sankey() # 添加流程和标签 for i in range(len(flows)): sankey.add(flows[i], label=labels[i]) # 添加流向 for link in links: sankey.add(flows=link[2], path=[link[0], link[1]], color='b' if link[1]==2 else 'r') # 绘制桑基图 sankey.finish() plt.show()
首先,我们定义了桑基图的流程和标签,这里有四个流程,分别表示为 “流程一”、“流程二”、“流程三”、“流程四”,对应的流量为 120, 80, 50, 30。接下来,我们定义了桑基图的流向,这里有四个流向,分别表示为 0 ->1、1 ->2、2 ->3、0 ->3,对应的流出量分别为 60、40、20、60。
然后,我们创建了一个 Sankey 图形对象,并顺次添加了流程和标签和流向。在添加流向时,我们可以指定流向的色彩,例如这里如果流向的终点是 “流程三”,那末流向就会以蓝色表示。
最后,我们调用 sankey.finish() 方法,绘制出了桑基图。运行代码后,我们可以得到以下的图形:
![Sankey Diagram](/upload/allimg/2023/06/21/reco5cqrblc.png)文章来源:丸子建站
文章标题:python 画桑基图
https://www.wanzijz.com/view/58757.html