【问题标题】:Setting theta-ticks in matplotlib polar plots在 matplotlib 极坐标图中设置 theta-ticks
【发布时间】:2014-01-24 02:38:13
【问题描述】:

我的问题与以下有关: Scatter polar plot in matlab

我尝试在网上查找,但找不到与此轴相关的任何内容;而不是极坐标图从 0 度到 360 度,我该怎么做 -180 到 180 度呢?

【问题讨论】:

  • -180 和 0 之间的数据将显示在 180 和 360 之间,如果您可以接受 0-360 的标签

标签: python matplotlib


【解决方案1】:

创建极轴后,您可以简单地设置刻度。请注意,您必须以弧度设置刻度,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))

【讨论】:

  • xticks 应该按任何特定顺序排列吗?当我尝试设置任意 xticks(不使用 linspace)时,它只显示一个段而不是整个极盘。
  • @rudolfbyker 查看xticksxtick_labels 之间的区别。听起来您可能还想编写自定义LocatorFormatter
  • 不,我想通了。在较新的 matplotlib 版本中(从 2017 年的某个时间开始),在极坐标图上设置 xticks 也会影响 theta 的限制。见github.com/matplotlib/matplotlib/pull/4699。在ax.set_xticks(...) 之后调用ax.set_thetalim(-np.pi, np.pi) 可确保绘制完整的圆。见matplotlib.org/api/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-10
  • 1970-01-01
  • 1970-01-01
  • 2017-05-18
  • 2014-03-13
  • 2019-08-25
  • 2015-09-12
相关资源
最近更新 更多