如何为循环中每组测量数据添加不同颜色与数据标记点?
多组测量数据的散点绘制(带不同颜色标记)
我有多组测量数据,希望在同一图中绘制,每组数据用不同颜色,同时显示每个数据点的标记点。最初尝试用RGB颜色向量实现但无效,后来通过plot2d(xvalues,yvalues,k)实现了循环中每条折线的颜色区分,现在需要把实线替换为数据点标记,同时保留每组不同颜色。
修改后的实现代码
j=1; data_count = size(Data,'*'); // 可选:定义多种标记样式,循环复用 markers = ["o", "x", "+", "*", "s", "d"]; for k = 1:data_count execstr(["xvalues=data"+string(k)+"(:,1);"]) execstr(["yvalues=data"+string(k)+"(:,2);"]) // 循环选取标记样式 marker = markers(mod(k-1, length(markers)) + 1); // 绘制带颜色的独立数据点:k指定颜色,marker指定点样式,"nn"关闭连线 plot2d(xvalues, yvalues, k + marker + "nn") legendstring(j) = strcat(['Measurementnr = ', string(j)]); j = j + 1; end legend(legendstring, 4)
关键说明
- 核心参数解释:
plot2d的第三个参数里,k对应预设的颜色序号,保证每组数据颜色不同;marker是点的样式(比如"o"为圆圈、"x"为叉号);"nn"表示不绘制数据点之间的连线,只显示独立标记点。 - 标记样式扩展:如果需要更高区分度,可以自定义
markers数组添加更多样式,代码会自动循环复用。 - 代码优化建议:尽量避免使用
execstr动态读取变量,如果数据是以结构体数组形式存储(比如Data(k).x、Data(k).y),直接调用会更安全高效。
内容的提问来源于stack exchange,提问作者Kwas Poser
相关产品推荐
相关产品推荐

