多轴绘图中如何移除指定Y轴刻度值?含右侧Y轴需求及代码
嘿,这两个问题其实都很容易解决,我分两部分给你讲清楚:
通用场景:移除多轴中的某个Y轴刻度数值
当Matlab里存在多个坐标轴时,核心思路是找到目标Y轴对应的坐标轴句柄,然后通过修改它的属性来隐藏刻度:
- 如果你只想隐藏刻度的文字数值(保留刻度线):把对应轴的
YTickLabel设为空数组{} - 如果你想同时隐藏刻度线和数值:把
YTick设为空数组[]
针对你的Matlab代码移除右侧Y轴刻度数值
看你给出的代码,右侧Y轴对应的是ax2这个坐标轴句柄,只需要在代码末尾添加一行属性修改即可。下面是修改后的完整代码:
figure x1 = Pmax; y1 = FuelCons; line(x1,y1,'Color','r') ax1 = gca; % 获取当前坐标轴句柄 ax1_pos = ax1.Position; % 记录第一个坐标轴的位置 ax2 = axes('Position',ax1_pos,... 'XAxisLocation','top',... 'YAxisLocation','right',... 'Color','none'); % 创建右侧Y轴的坐标轴 x2 = Cdrag; y2 = FuelCons; line(x2,y2,'Parent',ax2,'Color','k') % 移除右侧Y轴的刻度数值(保留刻度线) ax2.YTickLabel = {}; % 如果你想连刻度线一起隐藏,就替换成下面这行: % ax2.YTick = [];
小解释:
ax2.YTickLabel = {}:仅隐藏刻度的文字,Y轴的刻度线会保留,适合需要保留轴的视觉位置但不需要数值的场景。ax2.YTick = []:会同时隐藏刻度线和数值,彻底移除Y轴的刻度元素。
内容的提问来源于stack exchange,提问作者Clone




