基于第三个参数的Matlab绘图标记

3

我正在绘制X-Y数据,其中X是时间,Y是该点的强度。但是,我想知道是否可以根据第三个值更改标记类型?

目前我正在做以下工作。我希望能够根据zVector中的1-6个值设置标记形状,以便标记在整个图形中变化。

dataAdjusted = dlmread('file.csv');

xVector = dataAdjusted(:,1)
yVector = dataAdjusted(:,2)
zVector = dataAdjusted(:,3)  

figure 
hold on

plot(xVector, yVector, '-ro','MarkerSize',3, 'MarkerEdgeColor', 'k', 'MarkerFaceColor','k') 
1个回答

3

以下是一个示例,如何在z值从1到3时实现...

x=rand(1,10);
y=rand(1,10);
z=randi(3,1,10);

plot(x(z==1),y(z==1),'o',...
     x(z==2),y(z==2),'x',...
     x(z==3),y(z==3),'s')   

我认为你可以很容易地使用 for 循环对其进行泛化。

编辑 - 这里是一个 for 循环实现:

markerlist='sox';
colorlist='rgb';
for n=1:max(z)
plot(x(z==n), y(z==n), markerlist(n),'MarkerSize',5, 'MarkerEdgeColor', 'k', 'MarkerFaceColor',colorlist(n)) 
hold on
end 
hold off

enter image description here


谢谢,我在使用属性时遇到了问题。你有什么建议吗?plot(xShort(z == 1),yShort(z == 1),'ms','MarkerSize',3,xShort(z == 2),yShort(z == 2),'kv','MarkerSize',3,xShort(z == 3),yShort(z == 3),'g+','MarkerSize',3,xShort(z == 4),yShort(z == 4),'bx','MarkerSize',3,xShort(z == 5),yShort(z == 5),'ro','MarkerSize',3) - user2041602

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接