借助 Matplotlib 中的 sankey-toolbox,我们可以自动绘制 sankey-diagrams: sankey-object 的位置是根据它的先验对象,不能手动给出;并且在初始化 sankey-diagram 时,第一个 sankey-object 的位置将被分配一个轴的输入。 ((0,0)点将是该对象的中心点)
情况是这样的:我想绘制两个具有给定 y 偏移量的桑基图,并且应该连接两个图的几个端口。因此,在同一子图中需要两个具有 y 偏移量的坐标系。我试过'add_axes'方法,但是用这个方法创建了一个新的子图,并且会出现图形缩放问题。
现在的问题是:是否可以在不创建子图的情况下创建具有给定 y 偏移量的新坐标系?
最佳答案
这不是一个完整的答案,但它可能会帮助您找到解决方案:
sankey.add()
支持 transform
关键字参数。根据您的图形,创建一个新的 transform
实例,并将其用于图形的移动部分:
offset = transforms.ScaledTranslation(0.0, 0.5, fig.dpi_scale_trans)
new_transform = ax.transData + offset
sankey.add(flows=[-0.25, 0.15, 0.1], fc='#37c959', label='two',
orientations=[-1, -1, -1], prior=0, connect=(0, 0),
transform = new_transform)
为了创建新的变换,辅助函数 matplotlib.transforms.offset_copy()
也可能有用:
new_transform = offset_copy(ax.transData, fig=fig,
x = 0.05, y=0.10, units='inches')
关于python - Matplotlib:是否可以在不创建子图的情况下创建具有给定 y 偏移量的新 Axis ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13829637/