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

Matplotlib如何在坐标轴上添加额外带标签刻度

Matplotlib坐标轴添加额外带标签刻度的实现方法

针对你提到的对数坐标轴下添加自定义刻度的需求,有两种常用实现方案:

方案1:扩展主刻度(无需区分默认刻度和自定义刻度样式)

直接合并原有默认刻度与自定义刻度后重新设置,代码示例如下:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0,10)
y = np.exp(-x)

fig, axs = plt.subplots(1,1) 
axs.plot(x,y)
axs.set_yscale("log")

# 核心实现部分
existing_yticks = axs.get_yticks()  # 获取原有默认刻度
extra_yticks = [0.15, 0.25]  # 自定义要添加的刻度
all_yticks = np.append(existing_yticks, extra_yticks)
axs.set_yticks(all_yticks)

# 可选:自定义刻度标签样式,比如给额外刻度保留2位小数,原有刻度用科学计数法
ytick_labels = []
for tick in all_yticks:
    if tick in extra_yticks:
        ytick_labels.append(f"{tick:.2f}")
    else:
        ytick_labels.append(f"{tick:.0e}")
axs.set_yticklabels(ytick_labels)

plt.show()

方案2:使用次要刻度(可单独调整自定义刻度样式)

如果需要给额外刻度设置不同的字号、颜色等样式,可以用次要刻度系统实现:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0,10)
y = np.exp(-x)

fig, axs = plt.subplots(1,1) 
axs.plot(x,y)
axs.set_yscale("log")

# 核心实现部分
extra_yticks = [0.15, 0.25]
axs.set_yticks(extra_yticks, minor=True)  # 将自定义刻度设置为次要刻度
axs.set_yticklabels([f"{t:.2f}" for t in extra_yticks], minor=True)
# 单独调整次要刻度的样式
axs.tick_params(axis='y', which='minor', labelsize=9, labelcolor='red', length=4)

plt.show()

注意事项

  • 如果不需要自定义标签格式,无需调用set_yticklabels()方法,Matplotlib会自动生成对应刻度的标签
  • 两种方法对线性坐标轴、对数坐标轴都适用,x轴添加额外刻度的逻辑完全一致,只需把方法名里的yticks替换为xticks即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:06:09