Python 使用matplotlib的仿射变换?

Python 使用matplotlib的仿射变换?,python,matplotlib,affinetransform,Python,Matplotlib,Affinetransform,假设我想画一个等边三角形。一种方法是简单地绘制其顶点,可以是(0,0)、(1,0)和(1/2,\sqrt(3)/2): 但是假设我的y轴不是与x轴成直角倾斜,而是60度。这意味着该系统中的顶点将是(0,0)、(0,1)、(1,0)。我应该能够通过某种仿射变换做到这一点: import matplotlib.pyplot as plt from matplotlib.transforms import Affine2D from math import sqrt figure, ax = plt.

假设我想画一个等边三角形。一种方法是简单地绘制其顶点,可以是(0,0)、(1,0)和(1/2,\sqrt(3)/2):

但是假设我的y轴不是与x轴成直角倾斜,而是60度。这意味着该系统中的顶点将是(0,0)、(0,1)、(1,0)。我应该能够通过某种仿射变换做到这一点:

import matplotlib.pyplot as plt
from matplotlib.transforms import Affine2D
from math import sqrt
figure, ax = plt.subplots()
ax.plot([0,1,1,0],[0,0,1,0],'k-')
ax....
ax.set_aspect('equal')
其中第六条线会以某种方式变换整个图形,使直角三角形变为等边三角形。但是,尽管我尝试使用
Affine2D
,我还是无法让它工作

另一个选项——我不知道这在matplotlib中是否可行——是重新定义y,以便(0,1)映射到(1/2,sqrt(3)/2)


任何帮助,或指向有用URL的指针都会很好-谢谢

转换在数据上工作,而不是在轴上。谢谢-所以我必须在
ax.plot
命令中应用转换?这是否回答了您的问题?可能很有趣。
import matplotlib.pyplot as plt
from matplotlib.transforms import Affine2D
from math import sqrt
figure, ax = plt.subplots()
ax.plot([0,1,1,0],[0,0,1,0],'k-')
ax....
ax.set_aspect('equal')