有效地绘制不同个体大小的标记

时间:2016-10-16 19:58:21

标签: matlab plot matlab-figure

plot功能允许我们使用常量s绘制所有标记。

figure;
x = -10 : 10;
y = x .^ 2;
s = 10;
plot(x, y, 'bo', 'MarkerSize', s);

假设我们希望每个标记都有一些单独的大小sx。例如,sx = abs(x) + 1

实现这一目标的一种方法是使用for循环。

figure;
x = -10 : 10;
y = x .^ 2;
sx = abs(x) + 1;

hold on;
for i = 1 : length(x)
    plot(x(i), y(i), 'bo', 'MarkerSize', sx(i));
end

这适用于少量x。但是,如果x更大,该怎么办?例如,x = -100 : 0.01 : 100

现在需要更长时间,而plot(x, y, 'bo', 'MarkerSize', 100)几乎可以立即完成。理想情况下,我们可以执行plot(x, y, 'bo', 'MarkerSize', sx)之类的操作,其中sx是一个大小向量,sx中的每个条目对应x和{{1}中的条目}}。不幸的是,这会产生y的错误。

是否有一种有效的方法来绘制每个标记具有不同个体大小的标记?

1 个答案:

答案 0 :(得分:2)

您可以使用scatter代替 plot 进行以下操作:

scatter(x,y,abs(x)+1)