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

如何移除Matplotlib 3D运动追踪图周围的多余2D坐标轴?

如何移除Matplotlib 3D运动追踪图周围的多余2D坐标轴?

我看了你的代码,发现多余的2D坐标轴是因为重复创建子图导致的!

你最初用这行代码创建了两个默认的2D子图:

fig, (ax, ax_dist) = plt.subplots(1, 2, figsize=(14, 6))

紧接着又用ax = fig.add_subplot(121, projection='3d')在同一个位置(第一个子图区域)重新创建了一个3D子图,但原来的2D子图并没有被删除,它的坐标轴就留在了3D图的周围,形成了你看到的双重轴效果。

解决方案:直接创建目标子图,避免重复

把原来的子图创建代码替换成下面的写法,一次性创建正确的3D和2D子图,就不会有重叠的坐标轴了:

# 替换原来的前两行子图创建代码
fig = plt.figure(figsize=(14, 6))
# 第一个子图直接设为3D投影
ax = fig.add_subplot(1, 2, 1, projection='3d')
# 第二个子图保持2D类型
ax_dist = fig.add_subplot(1, 2, 2)

如果你更习惯用plt.subplots的写法,也可以这样调整(需要手动删除多余的2D子图):

fig, (ax, ax_dist) = plt.subplots(1, 2, figsize=(14, 6))
# 删除默认创建的第一个2D子图
fig.delaxes(ax)
# 重新创建3D子图放在第一个位置
ax = fig.add_subplot(1, 2, 1, projection='3d')

额外小优化:简化网格设置

我注意到你代码里的网格设置有点矛盾:先把三个轴的grid线宽设为0,之后又调用ax.grid(True)。如果你的需求是隐藏3D图的网格,直接用ax.grid(False)就可以了,不用去修改轴的内部参数,代码更简洁易懂。

修改后,你的3D运动追踪图就只会显示自身的3D坐标轴,不会再出现多余的2D轴啦!

备注:内容来源于stack exchange,提问作者Renyun Zhang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 18:53:11