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

Matplotlib保留坐标轴框架,移除坐标轴文字与刻度的实现方法

如何在Matplotlib中保留坐标轴框架但移除轴刻度与周围文字?

我来帮你搞定这个需求!要实现保留坐标轴的框状框架,同时移除x/y轴的刻度、刻度文字以及轴标签,还不影响图表内的图例等元素,其实有两种简洁的实现方式,下面给你详细说明:

方法一:直接操作轴刻度与标签

这是最直观的方式,分别控制刻度和标签的显示:

import matplotlib.pyplot as plt
import numpy as np

# 生成示例数据并绘图
x = np.linspace(0, 10, 100)
fig, ax = plt.subplots()
ax.plot(x, np.sin(x), label='正弦波')
ax.plot(x, np.cos(x), label='余弦波')

# 保留图表内的图例
ax.legend()

# 移除x、y轴的刻度线和刻度文字
ax.xaxis.set_ticks([])
ax.yaxis.set_ticks([])

# 清空x、y轴的标签文字
ax.set_xlabel('')
ax.set_ylabel('')

# 确保坐标轴框架(spines)可见(默认已开启,此步可作为兜底)
for spine in ax.spines.values():
    spine.set_visible(True)

plt.show()

代码解释:

  • ax.xaxis.set_ticks([]):传入空列表直接移除对应轴的所有刻度线和刻度文字
  • ax.set_xlabel(''):清空轴的标签文字(比如原本设置的"X轴"这类描述)
  • 最后遍历所有spines并设置可见,确保框架不会被意外隐藏

方法二:使用tick_params统一控制

如果想一次性搞定所有刻度相关的设置,可以用tick_params方法,代码更紧凑:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
fig, ax = plt.subplots()
ax.plot(x, np.sin(x), label='正弦波')
ax.plot(x, np.cos(x), label='余弦波')
ax.legend()

# 一次性隐藏所有刻度线和刻度文字
ax.tick_params(axis='both', which='both', 
               bottom=False, top=False, left=False, right=False,
               labelbottom=False, labelleft=False)

# 清空轴标签
ax.set_xlabel('')
ax.set_ylabel('')

plt.show()

代码解释:

  • axis='both':同时处理x轴和y轴
  • which='both':包含主刻度和次刻度
  • bottom/top/left/right=False:隐藏对应方向的刻度线
  • labelbottom/labelleft=False:隐藏对应方向的刻度文字

两种方法最终都会得到你想要的效果:只有框状的坐标轴框架,没有任何轴周围的刻度和文字,同时图例等内部元素完整保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:46:44