使用matplotlib的具有负半径的函数的极坐标图

时间:2017-03-23 16:51:24

标签: python matplotlib polar-coordinates

以下python代码应在[-pi / 2,pi / 2]范围内绘制r(theta)= theta。

B

这会产生情节:

polar plot

但是,我希望它能产生:

expected polar plot

r(theta)的负值似乎被削减了。我如何使matplotlib绘制r(theta)的负值?

1 个答案:

答案 0 :(得分:1)

第一张图似乎是正确的。它只是没有显示负值。这可以通过明确设置r轴的极限来克服。

r

enter image description here

此行为基于以下假设:任何数量都应绘制在极坐标图上,这可能有利于相对数量的技术问题。例如。人们可能会问周期系统中的数量与其平均值的偏差。在这种情况下,matplotlib使用的约定非常适合。

从更加数学(理论)的角度来看,人们可能会认为负半径是原点的一个点反映。为了复制此行为,需要将负import matplotlib.pyplot as plt import numpy as np theta = np.linspace(-np.pi / 2, np.pi / 2, 64 + 1) r = theta plt.polar(theta+(r<0)*np.pi, np.abs(r)) plt.show() 值的点旋转π。因此,可以通过以下代码再现来自问题的预期图表

.ssh/config

enter image description here