我正在尝试使用 matplotlib 制作一个稍微复杂的桑基图,它应该是动态的,因为我应该能够更改流的值并且所有连接都应该保持连接。这意味着我无法像本示例中建议的那样手动调整路径长度。为了熟悉显式连接和隐式连接,我尝试继续从仅通过一个显式连接连接在一起的两个系统的示例进行构建。通过此示例,您可以更改流的值,并且事物保持正确连接。因此,我尝试添加从系统 1 到系统 2 的第四个系统,但我似乎无法使隐式连接正常工作。请参阅下面的代码和输出。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.sankey import Sankey
import matplotlib as mpl
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, xticks=[], yticks=[], title="Two Systems")
flows = [0.3, 0.1, 0.40, -0.20, -0.4, -0.2]
sankey = Sankey(ax=ax, unit=None, radius=0.15, )
sankey.add(flows=flows, label='one',
orientations=[-1, 1, 0, 1, 0, -1])
sankey.add(flows=[-0.3, 0.2, 0.1], label='two',
orientations=[-1, -1, 0], prior=0, connect=(0, 0))
sankey.add(flows=[-0.1,-0.1,0.2], label='three',
orientations=[1,0,1], prior=0,connect=(1, 0))
sankey.add(flows=[0.4,-0.1,-0.3], label='four',
orientations=[-1,-1,0], prior=0,connect=(4, …Run Code Online (Sandbox Code Playgroud)