如何在SciLab中同时绘制多个彗星图?
解决Matlab中绘制多个横坐标不同的彗星图的问题
Matlab自带的comet函数矩阵输入模式仅支持共享同一横坐标矩阵的多列纵坐标,当需要每个彗星图使用独立横坐标时,直接传入多列矩阵会被当作单条曲线处理,这就是你遇到的问题。
无需自定义multicomet函数,用hold on配合多次调用comet即可实现需求,具体操作如下:
- 先调用
hold on开启图形窗口的保持模式,确保后续绘制的图形会叠加在当前窗口中 - 依次调用
comet函数,每次传入一组独立的横坐标和纵坐标数据 - (可选)绘制完成后调用
hold off关闭保持模式,避免后续绘图干扰
代码示例
% 生成第一组独立数据 x1 = linspace(0, 2*pi, 100); y1 = sin(x1); % 生成第二组独立数据(横坐标范围不同) x2 = linspace(pi, 3*pi, 100); y2 = cos(x2); % 创建图形并开启保持 figure; hold on; % 分别绘制两个独立的彗星图 comet(x1, y1); comet(x2, y2); % 添加图例与标题 legend('正弦彗星图', '余弦彗星图'); title('双独立横坐标彗星图'); % 关闭保持模式(可选) hold off;
运行上述代码后,同一个窗口中会显示两个横坐标完全独立的彗星图,各自的动画效果均能正常运行。
内容的提问来源于stack exchange,提问作者R. Burton
相关产品推荐
相关产品推荐

