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

如何移除Matplotlib图表上方的冗余文本?

解决Matplotlib图表顶部出现冗余对象文本的问题

问题现象

使用Matplotlib绘图时,某单元格的图表顶部会出现不美观的对象文本(例如([<matplotlib.axis.YTick at 0x7fe2b81d24d0>, [Text(0, 1, '1')),即使尝试移除标签,(0.0, 20.0)这类文本仍会残留,而另一绘图单元格无此问题。

问题原因

在Jupyter环境中,若单元格最后一行是Matplotlib的特定函数(如plt.yticks()、plt.ylim()),这类函数会返回对应的对象实例,Jupyter会自动打印这些返回值,导致图表上方出现冗余文本。无问题的单元格最后一行是plt.grid(),该函数返回None,因此不会触发自动打印。

解决方法

三种简单方式可抑制冗余文本:

  • 在单元格最后一行代码末尾添加分号;,阻止Jupyter打印返回值
  • 将最后一行的函数调用赋值给无用变量(如_),吸收返回值
  • 在单元格末尾调用plt.show(),明确触发图表显示,避免返回值被打印

修改后的示例代码

针对出现问题的绘图单元格,这里用添加分号的方式修改:

# 定义数组p
p = list(range(0,20))
plt.plot(sequance,p, "r.") # 注:原代码中l未定义,此处修正为前面生成的sequance数组

# 设置y轴范围
plt.ylim(0, 20);

# 添加网格线和标签
plt.grid()
plt.title("序列数值与位置关系")
plt.xlabel("序列数值")
plt.ylabel("序列位置")

# 修改刻度间隔,提升可读性
plt.xticks(list(range(0, 55000, 5000)))
plt.yticks(list(range(1,21)));

也可以用plt.show()的方式:

# 定义数组p
p = list(range(0,20))
plt.plot(sequance,p, "r.")

# 设置y轴范围
plt.ylim(0, 20)

# 添加网格线和标签
plt.grid()
plt.title("序列数值与位置关系")
plt.xlabel("序列数值")
plt.ylabel("序列位置")

# 修改刻度间隔,提升可读性
plt.xticks(list(range(0, 55000, 5000)))
plt.yticks(list(range(1,21)))

plt.show() # 调用show()明确显示图表,抑制返回值打印

额外说明

原代码存在一处小错误:plt.plot(l,p, "r.")中的l未定义,应为前面生成的sequance数组,已在修改后的代码中修正。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 03:32:39