plt.axis('equal')# 调整显示的横纵轴比例
这句不要,图示显示是变形的,纵横比例失调。
import matplotlib.pyplot as plt
import numpy as np
rotAngle = np.pi/6# 旋转角度
shiftX = 1 # x 轴平移量
shiftY = 2 # y 轴平移量
t = np.arange(0,2*np.pi,0.4)
x = np.cos(t)
y = np.sin(t)
plt.plot(x,y)# 绘制椭圆
t = np.arange(0,2*np.pi,0.01)
x = np.cos(t)*3
y = np.sin(t)*2
plt.plot(x,y)# 绘制椭圆
# 平移
xxx = x + shiftX
yyy = y + shiftY
plt.plot(xxx,yyy)
# 旋转
xx = np.cos(rotAngle)*x - np.sin(rotAngle)*y
yy = np.sin(rotAngle)*x + np.cos(rotAngle)*y
plt.plot(xx,yy)
# 旋转+平移
#(一定是先旋转在平移,因为这里的旋转是根据旋转矩阵来实现表达的,而旋转矩阵是针对原点旋转的)
xxxx = np.cos(rotAngle)*x - np.sin(rotAngle)*y+shiftX
yyyy = np.sin(rotAngle)*x + np.cos(rotAngle)*y+shiftY
plt.plot(xxxx,yyyy)
plt.axis('equal')# 调整显示的横纵轴比例
plt.show()# 真正显示出上述的绘图结果
来源:oschina
链接:/u/4418383/blog/4360349