You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib极坐标图:自定义主刻度轴标签

修改Matplotlib极坐标图的方位与标签

以下是满足需求的可运行代码:

%matplotlib widget
import numpy as np
import random
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(projection='polar')

# 旋转极坐标,让0度(Front)位于12点钟方向
ax.set_theta_offset(np.pi / 2)
# 设置角度方向为顺时针(符合日常方位认知)
ax.set_theta_direction(-1)

# 自定义刻度标签:对应12、3、6、9点钟位置
theta_ticks = [0, np.pi/2, np.pi, 3*np.pi/2]
ax.set_xticks(theta_ticks)
ax.set_xticklabels(['Front', 'Right', 'Back', 'Left'])

# 绘制360个随机点
for rad in np.arange(0, 2 * np.pi, 2 * np.pi / 360):
    ax.plot(rad, random.random()*10, marker='.', markersize=2, color='green')

plt.show()

关键修改说明:

  • 旋转极坐标原点:使用ax.set_theta_offset(np.pi / 2) 将默认在3点钟的0度位置逆时针旋转90度,移到12点钟方向。
  • 调整角度方向:ax.set_theta_direction(-1) 把默认的逆时针角度方向改为顺时针,让3点钟对应π/2弧度(Right)、6点钟对应π弧度(Back)、9点钟对应3π/2弧度(Left),贴合日常方位逻辑。
  • 替换刻度标签:通过set_xticks指定要显示的角度位置,再用set_xticklabels把系统默认刻度替换为自定义的方位名称。
  • 规范绘图方式:改用子图对象的ax.plot替代全局的plt.polar,代码更模块化,避免全局状态干扰。

内容的提问来源于stack exchange,提问作者pitosalas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 20:36:22