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

如何隐藏Matplotlib极坐标图的刻度线但保留刻度标签?

如何隐藏极坐标图的刻度线但保留刻度标签?

问题场景

我用Matplotlib绘制了一个时钟面板,代码如下:

import matplotlib.pyplot as plt
import numpy as np

# 创建极坐标图
fig = plt.figure(figsize=(6, 6))
ax = fig.add_subplot(111, polar=True)

# 设置刻度与标签
angles = np.radians(np.linspace(0, 360, 12, endpoint=False))
labels = [str(l) for l in range(12)]
ax.set_xticks(angles, labels)
ax.set_yticks([])

初始显示效果:
时钟面板初始效果

我希望隐藏刻度线但保留刻度标签,尝试添加ax.set_xticks([])后,刻度线和标签全部消失了,请问怎么实现只隐藏刻度线?


解决方案

不需要清空刻度位置,直接通过tick_params方法将刻度线长度设为0即可,这样既能隐藏刻度线,又能保留标签。

在代码中添加以下一行(不要用ax.set_xticks([])):

ax.tick_params(axis='x', which='both', length=0)

参数说明:

  • axis='x':指定对极坐标的角度轴(x轴)生效
  • which='both':同时作用于主、副刻度(这里仅主刻度存在)
  • length=0:将刻度线长度设为0,使其不可见

修改后的完整代码

import matplotlib.pyplot as plt
import numpy as np

# 创建极坐标图
fig = plt.figure(figsize=(6, 6))
ax = fig.add_subplot(111, polar=True)

# 设置刻度与标签
angles = np.radians(np.linspace(0, 360, 12, endpoint=False))
labels = [str(l) for l in range(12)]
ax.set_xticks(angles, labels)
ax.set_yticks([])

# 隐藏x轴刻度线,保留标签
ax.tick_params(axis='x', which='both', length=0)

plt.show()

运行后,刻度线会被隐藏,1-12的数字标签会完整保留,符合时钟面板的需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 02:00:11