Matlab同轴绘图区分不同属性元素的实现求助
解决Matlab同一坐标轴区分不同属性元素的绘图问题
没问题,我来帮你搞定这个需求!不用拼接数组,也不用分开绘制图表,咱们直接在同一个坐标轴上用颜色区分正矩阵和非正矩阵的数据。
实现步骤与代码
首先,我们先通过索引筛选出两类矩阵对应的X、Y数据,然后在同一个坐标系下分别绘制不同颜色的图形:
% 原始数据 xaxis = [1,2,3,4,5,6,7,8,9]; yaxis = [10,11,12,13,14,15,16,17,18]; % 筛选正矩阵和非正矩阵的索引 positive_idx = ismember(xaxis, [1,5,6,7,8]); % 正矩阵对应的位置 non_positive_idx = ~positive_idx; % 非正矩阵对应的位置 % 在同一坐标轴绘制两类数据 plot(xaxis(positive_idx), yaxis(positive_idx), 'ro-', 'LineWidth', 1.5, 'MarkerSize', 6); hold on; % 保持当前坐标轴,叠加绘制 plot(xaxis(non_positive_idx), yaxis(non_positive_idx), 'bo-', 'LineWidth', 1.5, 'MarkerSize', 6); hold off; % 添加图表标注,让结果更清晰 legend('正矩阵', '非正矩阵'); xlabel('矩阵元素数量'); ylabel('时间分辨率 / 占用内存'); title('不同属性矩阵的性能对比');
代码解释
- 用
ismember快速定位正矩阵对应的X轴位置,再取反得到非正矩阵的索引,全程不用手动拼接数组; 'ro-'表示红色(red)的圆形标记(circle)加连线,'bo-'对应蓝色(blue)的标记和连线,你也可以根据需求调整标记样式(比如换成s方形、^三角形);hold on/off保证两类数据绘制在同一个坐标轴上,完全满足你不能用独立图表的要求。
内容的提问来源于stack exchange,提问作者FireFox1616
相关产品推荐
相关产品推荐

