【问题标题】:Polar plot in Python looks quite strangePython中的极坐标图看起来很奇怪
【发布时间】:2021-01-05 22:53:39
【问题描述】:

通过一段很长的 Python 代码,我得到了两个数组:phi(包含 0,1,2,...,360)和 F。

如果我在笛卡尔图中绘制 F 与 phi,只需以下两条指令:

plt.plot(phi,F)
plt.show()

我得到以下图表。

但是,如果我尝试使用以下代码将其绘制在极坐标图中:

plt.polar(phi,F)
plt.show()

我得到以下图表。

最后一个不是我所期待的。我期待像一个嘈杂的圆周,因为 F 与 phi 的笛卡尔图显示了一个嘈杂的行为,平均值为 -0.8。

我希望得到与此图相似(具有不同值,因为它引用其他变量)的东西:

UPDATE1:正如@luuk 所建议的,我已将phi 从度数转换为弧度数。现在我得到了这个结果。

UPDATE2:更改rlims(从-2设置为0.1)后,图片如下所示

这仍然很奇怪,因为图表内有一个实心圆圈。你知道我该如何移除它(如果只是因为线条太密)?

更新 3:

如果我用点('.i' in plot)绘制它,我会得到一个合理的情节。但是,如果可能的话,我更希望得到一个有线条的情节。

【问题讨论】:

  • 请注意,笛卡尔图中的 y 值的范围跨越 0。您看到的极坐标图是可以预期的。也许您打算对这些值进行低通滤波,使它们不是 0.8+-1.0,而是 0.8+-0.1
  • 感谢您的建议。我看到我的图表中有一个错误。现在我已经正确更新了它们
  • 虽然情节现在看起来不同了,但问题还是一样。
  • 你确实看到了一个振荡的圆周 - 半径在 -1.6 和 0 之间。
  • 因为线条非常密集,以至于它们填满了图形中间的所有像素。

标签: python python-3.x matplotlib plot polar-coordinates


【解决方案1】:

Polar Demo 可以看出,plt.polar() 期望theta 参数以弧度为单位(域为 [0, 2π]),而不是度数。通过乘以np.pi/180,将phi 转换为弧度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 2021-03-25
    • 2015-03-20
    相关资源
    最近更新 更多