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

Python中plt.imshow()自定义Y轴指定位置刻度标记问题

在Matplotlib拼接图的水平线旁添加刻度标签

我来帮你搞定这个给水平线加自定义刻度的需求!根据你的代码,你已经成功画出了水平线,现在只需要给这些线配上对应的刻度值就行,这里有两种实用的方法:

方法1:直接在水平线旁添加文本标签

这种方法简单直接,适合快速给每条线标注。你只需要在循环里画完axhline之后,用plt.text()在对应位置添加文本即可。需要注意文本的x位置,要选在不会遮挡图像的地方,比如图像范围的外侧:

import matplotlib.pyplot as plt

# 假设你的mu_pix对应的刻度值是这个列表,替换成你实际的数值即可
tick_values = [0.1, 0.2, 0.3, 0.4]  # 长度要和mu_pix保持一致

fig = plt.figure(figsize=(2,20))
plt.imshow(cube1_img_rot)
plt.imshow(cube2_img_rot, extent=[-19,1928,-24537, -22591])
plt.imshow(cube3_img_rot, extent=[-19,1928,-9352, -7476])

# 获取x轴左边界,把文本放在图像左侧外侧,避免遮挡内容
x_pos = plt.xlim()[0] - 200  # 可以根据图像宽度调整这个偏移量

for i in range(len(mu_pix)):
    plt.axhline(mu_pix[i], color='red')  # 给水平线加颜色方便区分,可选
    # 添加刻度文本,va='center'让文本和水平线垂直居中,ha='right'让文本贴近线
    plt.text(x_pos, mu_pix[i], f'{tick_values[i]}', va='center', ha='right', fontsize=10)

plt.savefig('foo.pdf', bbox_inches='tight')
plt.show()

方法2:自定义Y轴刻度(更规范)

如果你希望这些刻度值和Matplotlib自带的轴刻度整合在一起,替换掉原来的Y轴刻度,这种方法更专业美观:

import matplotlib.pyplot as plt

tick_values = [0.1, 0.2, 0.3, 0.4]

fig = plt.figure(figsize=(2,20))
plt.imshow(cube1_img_rot)
plt.imshow(cube2_img_rot, extent=[-19,1928,-24537, -22591])
plt.imshow(cube3_img_rot, extent=[-19,1928,-9352, -7476])

# 画出水平线,用虚线区分更清晰,可选
for y in mu_pix:
    plt.axhline(y, color='red', linestyle='--')

# 获取当前轴对象
ax = plt.gca()
# 设置Y轴刻度位置为mu_pix对应的像素位置,刻度标签为你需要的数值
ax.set_yticks(mu_pix)
ax.set_yticklabels(tick_values)

# 如果需要保留原有的部分刻度,可以把原刻度和自定义刻度合并:
# original_ticks = ax.get_yticks()
# combined_ticks = list(original_ticks) + mu_pix
# combined_labels = [str(t) for t in original_ticks] + tick_values
# ax.set_yticks(combined_ticks)
# ax.set_yticklabels(combined_labels)

plt.savefig('foo.pdf', bbox_inches='tight')
plt.show()

小提示

  • 一定要保证tick_values的长度和mu_pix完全一致,不然会出现报错
  • 调整文本位置或刻度样式时,可以修改fontsize、color、linestyle这些参数来适配你的图
  • 用方法1时,x_pos的偏移量需要根据你的图像宽度灵活调整,避免文本被截断或者挡住图像内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:21:45