【发布时间】:2021-09-22 08:02:26
【问题描述】:
我有这样的线性图: linear plot
我想使用以下方法创建极坐标图:
def cart2pol(x, y):
rho = np.sqrt(x**2 + y**2)
phi = np.arctan2(y, x)
return(rho, phi)
但我并不明白它是如何工作的。如何使用上面的 def 在极坐标中创建图?
要创建我正在使用的线性图
ax.plot(xd, yd2)
其中:xd=range(0,50) 和 yd2 = yd[0:50], yd - 来自我的信号的数据。
下一个:
xd_2 = xd[2:50]
yd3 = yd[2:50]
def cart2pol(xd_2, yd3):
xdkw = np.power(xd_2,2)
yd3kw = np.power(yd3,2)
rho = np.sqrt(xdkw + yd3kw)
phi = np.arctan2(yd3kw, xdkw)
return(rho, phi)
接下来:
plt.polar(cart2pol(xd_2,yd3))
我得到一个错误:
ValueError: x and y can be no greater than 2-D, but have shapes (2,) and (2, 50, 48)
【问题讨论】:
-
你的意思是你想用
phi作为横轴,rho作为纵轴来绘图吗? -
在极坐标中作为“r”和“theta”
-
okej,但是如何将我的线性图转换为极坐标图?在 matlab 中是一个 cmd:cart2pol,就是这样。
-
您最初用来绘制的
x和y- 列表(或numpy 数组)可以使用您定义的cart2pol(x,y)转换为极坐标,然后使用matplotlib.pyplot.polar绘制它。我不确定问题到底出在哪里。