【问题标题】:Add tilted (floating) axes to overlay with standard axes添加倾斜(浮动)轴以覆盖标准轴
【发布时间】:2012-07-25 13:43:05
【问题描述】:

我正在寻找一种方法来添加额外的轴对,包括倾斜和原点移位。应将它们添加到已用于显示图像的轴上。

结果应该看起来接近

    y         x+y
    |\       /
  9 | + -2  + 18
    |  \   /
    |   \ /     
  8 |    x        
    |   / \
    |  /   \
  7 | + 14  \x-y
    |/       + 2
    +--------------------- x
    7    8    9             

(很遗憾,我不被允许上传我创建的实际图像)

倾斜轴的中心应该定位在某个坐标 (x0,y0),在我的例子中是 (8,8),我希望能够像普通轴一样对待新轴,即对它们使用 set_xlabel、grid 等函数。

我尝试使用 Affine2D 变换、浮动轴和脊椎来获得结果,但无法正确处理这个问题。非常欢迎任何帮助。

图片中不重要的部分是用

完成的
import numpy as np
import matplotlib.pyplot as plt

X = Y = np.linspace(7, 9, 100)
XX, YY = np.meshgrid(X,Y)
Z = np.exp(-(XX-XX.mean())**2/1 - (YY-YY.mean())**2/5)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.imshow(Z, origin='lower', extent=[X.min(), X.max(), Y.min(), Y.max()])
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.grid(True, color='white')

提前致谢。

【问题讨论】:

    标签: python matplotlib axes


    【解决方案1】:

    这是 matplotlib 的一个难题,与我过去遇到的类似。我知道,通过大量的启动时间,我相信使用浮动轴可以完成您所要求的操作。

    我曾经在 matplotlib 开发邮件列表 http://old.nabble.com/Drawing-arbitrary-Axis-on-a-plot-p33625041.html 上对此进行过讨论,但遗憾的是没有人给出任何答案。

    我将尝试制作一个浮动轴的工作示例,但不知道我会成功...

    【讨论】:

    • 非常感谢。那将是非常友好的。事实上,不久之后,我偶然发现了 pywcsgrid2 包,它显然成功地处理了天文图像的这种浮动轴。不幸的是,这个包似乎是为处理某些天体物理学数据量身定制的,因此需要一些额外的“魔法”来实例化一个轴。
    • 似乎您所指的库在 mpl AxisArtist 实现中使用了浮动轴艺术家。这样做的限制是您必须为要跟随的轴指定一个常量数据值(或者看起来如此)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多