在matplotlib极坐标图中设置theta刻度

9
我有关的问题与以下内容相关: 如何在matlab中制作散点极坐标图 我已经搜索过网络,但是无法找到带有这种坐标轴的图表;如何将极坐标从0度到360度变为从-180度到180度?

数据在-180和0之间将显示在180和360之间,如果你可以接受标签为0-360。 - jonrsharpe
1个回答

10
创建极轴后,您可以简单地设置刻度。请注意,您必须以弧度设置刻度,而Matplotlib会以度数显示。
不太确定您想如何处理180和-180的差异。
import matplotlib.pyplot as plt
fig, ax1 = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
ax1.set_xticks(np.pi/180. * np.linspace(180,  -180, 8, endpoint=False))

极轴


1
xticks需要按照特定顺序吗?当我尝试设置任意的xticks(不使用linspace)时,它只显示了极坐标图的一部分而非整个图。 - rudolfbyker
@rudolfbyker请查看xticksxtick_labels之间的区别。听起来您可能想编写自定义的LocatorFormatter - Paul H
9
我知道了。在更新的 matplotlib 版本(自 2017 年以来的某个时候)中,在极坐标图上设置 xticks 也会影响 theta 的限制。请参见 https://github.com/matplotlib/matplotlib/pull/4699 。在 ax.set_xticks(...) 后调用 ax.set_thetalim(-np.pi, np.pi) 可确保绘制完整的圆圈。请参见 https://matplotlib.org/api/projections_api.html#matplotlib.projections.polar.PolarAxes.set_thetalim 。 - rudolfbyker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接