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

如何在Matplotlib的loglog图中用set_yticks消除ytick标签

解决Matplotlib loglog图中y轴刻度/标签无法移除的问题

在loglog图里直接用set_yticks([])失效,核心原因是对数轴的主刻度(major)和副刻度(minor)是分开管理的:普通set_yticks仅处理主刻度,副刻度会依然显示;另外设置轴范围后,Matplotlib可能自动重新生成刻度,覆盖你的手动设置。

两种需求的解决方案:

1. 完全移除y轴的刻度线和标签

如果要彻底去掉y轴所有刻度(线+标签),用tick_params一次性处理主副刻度最稳妥:

ax.tick_params(axis='y', which='both', left=False, labelleft=False)
  • axis='y':指定针对y轴操作
  • which='both':同时作用于主、副刻度
  • left=False:隐藏刻度线
  • labelleft=False:隐藏刻度标签

2. 保留刻度线,仅移除刻度标签(你的最终需求)

只需要隐藏标签、保留刻度线的话,去掉left=False参数即可:

ax.tick_params(axis='y', which='both', labelleft=False)

应用到你的示例代码

修改后的完整代码如下(优化了重复代码,更简洁):

from matplotlib import pyplot as plt
import numpy as np

xvals=np.logspace(-1,1,20)
yvals1=np.array([0.03950564, 0.03953078, 0.03957078, 0.03962743, 0.03970915,
       0.03981691, 0.03994918, 0.04010086, 0.04026356, 0.04042849,
       0.04058817, 0.04073742, 0.04087351, 0.04099616, 0.04110702,
       0.04120875, 0.04130422, 0.04139636, 0.04148823, 0.04158317])
yvals2=np.array([0.0223383 , 0.02247799, 0.02265306, 0.02287054, 0.02314318,
       0.0234758 , 0.02387278, 0.02434108, 0.02489343, 0.02555092,
       0.02634133, 0.02729466, 0.02843651, 0.02978005, 0.03131751,
       0.03301349, 0.03480207, 0.03658879, 0.03825972, 0.03970347])

fig, axs = plt.subplots(1,3 , figsize = (15,5))

for ax in axs:
    ax.loglog(xvals,yvals1,c = 'green')
    ax.loglog(xvals,yvals2,c = 'tab:blue')
    ax.set_ylim(0.02,0.07)
    ax.set_xlim(0.1,10)
    ax.set_xticks([])  # x轴直接清空即可,此处无问题
    # 应用需求设置:保留刻度线,移除y轴标签
    ax.tick_params(axis='y', which='both', labelleft=False)

plt.subplots_adjust(wspace=0.5)
plt.show()

补充说明

  • 之前尝试的set_yticklabels([])失效,是因为对数轴的副刻度标签未被处理,tick_params的which='both'能覆盖所有刻度类型。
  • 如果需要单独控制主/副刻度,可以把which参数改成'major'或'minor',比如仅隐藏主刻度标签:ax.tick_params(axis='y', which='major', labelleft=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 21:25:02