2012-02-08 62 views
1

当绘制同时使用线规范(XYlinespec)三元组和(PropertyNamePropertyValue)双峰,仅单个MarkerSize可以指定多个数据系列和这个尺寸适用于所有的数据系列。例如,MATLAB:线指定标记大小

plot(X1,Y1,'.b',X2,Y2,'-r','MarkerSize',5) 

是否可以指定每个不同的数据序列的不同MarkerSize而不诉诸单独或随后绘制的数据系列改变情节处理性能?无论是以下两个命令是有效的,但他们得到期望的结果的想法:

plot(X1,Y1,'.b',X2,Y2,'-r','MarkerSize',[5 10]) 
plot(X1,Y1,'.b','MarkerSize',5,X2,Y2,'-r','MarkerSize',10) 

回答

2

尝试:

h = plot(X1,Y1,'.b',X2,Y2,'*r'); 
set(h(1),'MarkerSize',5); 
set(h(2),'MarkerSize',2); 
+0

感谢jonnat内的任何其他情节。那可行。你认为不可能在一行中指定所有东西吗?干杯。 – user001 2012-02-08 00:18:05

+0

我不知道一个简单的方法来做到这一点。我有兴趣听到有人知道。 – foglerit 2012-02-08 00:34:07

2

您可以使用scatter。它具有SizeData属性,它是一个向量。

x = rand(10,1); 
y = rand(10,1); 
s = scatter(x,y); 
set(s,'SizeData',linspace(1,100,10)) 

如果您想使用标记线图,你可以得出你的情节,用hold on,然后在它上面画scatter

+0

谢谢@Andrey。我希望能够为我的每个不同的数据系列选择不同的线条系列属性,但是'plot'允许但是'scatter'不幸的不是。例如,'x = 1:5; Y = 6:10; Z = 11:15; H =积(X,X, 'OK',Y,Y '或',Z,Z 'OB'); set(h,'SizeData',[10 50 90])'会很好,但'plot'没有'SizeData'属性。理想情况下,这会将大小“10”应用于“x”数据,“50”至“y”数据以及“90”至“z”数据。 – user001 2012-02-08 07:55:34

0

对于它可能是

plot(x1,0,'+','MarkerSize',10) 

或环刚

plot(x?, 0, '+', 'MarkerSize', 10, 'MarkerEdgeColor', 'r') 
+0

从另一个解决方案中找到了它 – referer 2017-10-31 11:57:39