嵌入轴固定在数据坐标中的特定点?

时间:2013-10-12 15:27:24

标签: python matplotlib plot transformation

我希望能够在一组父轴上叠加多个插入轴,如下所示:

enter image description here

理想情况下,我希望每组插入轴的锚点固定在数据坐标中,但是对于轴的x,y范围,要按图形大小而不是数据的比例进行缩放。

例如,如果我放大父轴中的某个区域,我希望插入轴的位置与父轴中绘制的数据一起移动,但是它们的面积和纵横比保持不变相同。我正在寻找的确切行为类似于情节标记或matplotlib.Annotation实例。但是,我决定只能在数据坐标中设置轴的范围。

我知道我可以将rect参数传递给axes()来指定标准化数字坐标中的位置和范围。但是,我需要将我的轴锚定到 data 坐标中的特定点。

我也尝试过这样的事情:

from matplotlib import pyplot as pp

fig,parent_ax = pp.subplots(1,1)
parent_ax.set_xlim(0,1)
parent_ax.set_ylim(0,1)

# desired axis bounding box in data coordinates
rect = (0.1,0.2,0.2,0.3)

child_ax = axes(rect)

# apply transformation to data coordinates of parent axis
child_ax.set_transform(parent_ax.transData)

没有所需的效果(我的子轴的x,y限制现在耦合到父轴的x,y限制,我不想要它,它的位置仍然不在数据坐标中。)< / p>

我也查看了various examples here,但它们似乎都没有找到我正在寻找的东西,即允许我在数据坐标中指定任意锚点。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

将插入轴保存为图像,然后将其插入较大的图形中。请参阅Adding a small photo/image to a large graph in Matplotlib/Python