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

Matplotlib子图出现重复刻度问题求助

解决Matplotlib子图重复刻度问题

你的代码出现重复刻度的核心原因是重复创建了子图:

  • fig2,ax2 = plt.subplots(figsize=(5,4)) 这行代码已经自动创建了一个1×1的子图,并返回对应的坐标轴对象ax2。
  • 后续又执行ax2 = fig2.add_subplot(111),相当于在同一个画布上再次创建了一个位置完全重叠的子图,两个子图的坐标轴刻度叠加显示,就出现了重复标记的问题。

修改后的代码

只需删除重复创建子图的那一行,直接使用plt.subplots()返回的坐标轴对象即可:

fig2, ax2 = plt.subplots(figsize=(5,4))
fig2.subplots_adjust(left=0.07,right=1,top=1,bottom=0.07)
canvas2 = FigureCanvasTkAgg(fig2, master=FrameDVH)
canvas2.get_tk_widget().place(x=0,y=0)
color=['green','red','blue','black','yellow','orange']
try:
    for d in range(0,len(DVH_TPS[:,0,0])-1):
        ax2.plot(DVH_TPS[d,:,0],DVH_TPS[d,:,1],'-o', markersize=1,color=color[d])
except Exception:
    pass

ax2.set_yticks([10,20,30,40,50,60,70,80,90,100])
ax2.set_xticks([dosis*0.2,dosis*0.4,dosis*0.8,dosis,dosis*1.2])
canvas2.draw()

补充说明

如果后续需要添加多个子图,建议通过plt.subplots(nrows, ncols)直接指定行列数批量获取坐标轴对象,或者使用fig.add_subplot()时指定不同的位置参数(如211、212),避免在同一位置重复创建子图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 13:54:51