我使用MATLAB plot3
函数生成了下图。
这个数字并不好。 因为,我认为,读者很难估计这个数字的坐标。 点高度(Z值)太难以从图中估计。 我的数字中缺少什么使得难以解释?
播放数据: 可视化数据为here。产生我当前数字的函数是here。可以对mArrow3电话进行评论,也可以从here下载。
答案 0 :(得分:3)
为了更好地看到高度,您可以使用stem3
从地板到每个点绘制一条垂直线。您可以使用零高度的半透明patch
来增强表示,以突出显示地板。
% // Random data
x = -20+50*rand(1,50);
y = 150*rand(1,50);
z = -5+10*rand(1,50);
%// With plot
figure
plot3(x,y,z,'.','markersize',8)
grid on
axis equal
view(-33, 14)
%// With stem3 and patch
figure
stem3(x,y,z,'.','markersize',8)
grid on
hold on
patch([-20 30 30 -20], [0 0 150 150], [0 0 0 0], 'k', ...
'edgecolor', [.5 .5 .5], 'FaceAlpha' , .1)
axis equal
view(-33, 14)
答案 1 :(得分:1)
我认为问题可能是这些情节所固有的:数据的0d点难以透视地解释,你的大脑可以在深度数据点的decypher位于。例如,在我看来,你没有z = 0以上x = 15以上的数据,这显然是错误的,但我的大脑将你的大多数点归因于z = -5平面。
除非您的数据点具有随距离成比例变化的有限体积(这不能用matlab完成,并且可能无论如何都不会有帮助),您可能想重新考虑您的可视化方式。如何有3个图,每个图有一个沿x,y和z轴的相机?
编辑:suggestion of Luis Mendo让我觉得在尝试回答问题时我应该有一个更开放的心态:)
答案 2 :(得分:1)
您还可以使用不同的颜色/标记/磅值来区分数据中的各个区域。例如,{0}低于0的值是红色,而上面的值是绿色。以下是使用z
和4个不同区域的简单示例。感谢Luis Mendo提供虚拟数据。
scatter3
答案 3 :(得分:0)
kkuilla's answer产生了更好的结果: