MATLAB中的随机分层非重叠散点图
问题描述:
我使用scatter
或plot
连续绘制hold on
函数,绘制(例如三个)不同的数据集。这会生成散点图,最后一个图层与所有其他图层重叠。 是否有一个(绘图)功能可以随机分散图层?MATLAB中的随机分层非重叠散点图
答
你可以通过一个3d图来实现这一点。
使用plot3(而不是plot)创建一个长度与您的x & y矢量相同的深度矢量,并使用随机数绘制图。
然后,您可以使用命令视图(2)来更改观察点,您将获得后面的效果。
例
f1=figure;
f2=figure;
nValues = 2000;
for dataSet=1:3
r1 = rand(nValues,1);
r2 = rand(nValues,1);
r3 = rand(nValues,1);
t = r1 * pi * 2;
x = r2 .* cos(t) + r1(1);
y = r2 .* sin(t) + r2(1);
depth = r3;
set(0,'CurrentFigure',f1)
plot(x,y,'.', 'MarkerSize',25)
hold all
set(0,'CurrentFigure',f2)
plot3(x,y,depth,'.', 'MarkerSize',25)
hold all
end
% Change viewpoint
view(2)
我想说第一层散射与最后一层不完全重叠。理想情况下,点应该随机出现在第一层或最后一层。像这样的东西:http://www.cell.com/cms/attachment/2061927522/2063377357/gr2_lrg.jpg –
提供你的问题的[MCVE],解释它是如何不同于预期的结果 –