更好的MATLAB Plot3可视化缺少什么?

时间:2015-07-21 13:56:48

标签: matlab visualization data-visualization mplot3d

我使用MATLAB plot3函数生成了下图。

enter image description here

这个数字并不好。 因为,我认为,读者很难估计这个数字的坐标。 点高度(Z值)太难以从图中估计。 我的数字中缺少什么使得难以解释?

播放数据: 可视化数据为here。产生我当前数字的函数是here。可以对mArrow3电话进行评论,也可以从here下载。

4 个答案:

答案 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)

enter image description here enter image description here

答案 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

enter image description here

答案 3 :(得分:0)

关于热图的

kkuilla's answer产生了更好的结果:

enter image description here