python - Matplotlib:是否可以在不创建子图的情况下创建具有给定 y 偏移量的新 Axis ?

标签 python matplotlib axis sankey-diagram

借助 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/

相关文章:

python - 使用 NRF24L01 将 Arduino 浮点值转换为 Python

python - Kivy:如何在没有kv语言的情况下通过FileChooser选择目录?

python - 使用Python绘制圆形插值热图

python - 无法绘制图表 : matplotlib is needed for plotting

axis - 固定 DC js rowChart 中的 x Axis ?

python - 将二分图转换为邻接矩阵python

Python Pandas : zfill for rangeIndex

python - 了解 `pylab.legend` 的默认用法

x Axis 上的 Python 条形字符串

c++ - 在 DirectX 11.2 C++ 中围绕所有 3 个(X、Y、Z) Axis 旋转模型