3

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

结果应该看起来接近

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

(不幸的是,我不允许上传我创建的实际图像)

倾斜轴的中心应该定位在某个坐标 (x0,y0),在我的情况下是 (8,8),我希望能够像普通轴一样对待新轴,即使用类似的函数set_xlabel,网格等。

我试图使用 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')

提前致谢。

4

1 回答 1

0

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

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

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

于 2012-07-25T19:18:16.380 回答