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

同一Axes句柄下两个Plot句柄无法使用hold on问题及复现代码

解决同一坐标轴下多个绘图句柄的hold on失效问题

在MATLAB里踩过这个坑的人都懂:当你直接指定坐标轴句柄调用plot时,单纯敲hold on经常不生效——因为hold on默认是给当前激活的坐标轴开启绘图保持状态,而如果你的目标坐标轴没被设为当前轴,这个设置根本没作用到它身上。下面是修正后的完整代码,能生成两个可在同一坐标轴共存的绘图句柄:

% 创建隐藏的黑色figure窗口
figureHandle = figure('NumberTitle','off',...
    'Name','RFID Characteristics',...
    'Color',[0 0 0],'Visible','off');

% 创建带浅色网格的黑色坐标轴
axesHandle = axes('Parent',figureHandle,...
    'YGrid','on',...
    'YColor',[0.9725 0.9725 0.9725],...
    'XGrid','on',...
    'XColor',[0.9725 0.9725 0.9725],...
    'Color',[0 0 0]);

% 关键操作:给指定的坐标轴开启hold状态,而非默认当前轴
hold(axesHandle, 'on');

% 初始化绘图数据
xData = 0;
yData = 0;

% 生成第一个绘图句柄(绿色点)
plotHandle1 = plot(axesHandle,xData,yData,'Marker','.','LineWidth',1,'Color',[0 1 0]);
% 生成第二个绘图句柄(修正了你代码里的axesH拼写错误,用红色圆圈示例)
plotHandle2 = plot(axesHandle,xData,yData,'Marker','o','LineWidth',1,'Color',[1 0 0]);

% 最后如果需要显示窗口的话
set(figureHandle, 'Visible', 'on');

核心注意点:

  • 别再只用hold on了,改用hold(axesHandle, 'on')直接给目标坐标轴绑定保持状态,确保后续的plot操作不会清掉之前的绘图内容。
  • 每次调用plot时明确指定坐标轴句柄,避免MATLAB自动切换当前轴导致的状态混乱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:19:02