【问题标题】:What is missing for a better MATLAB Plot3 visualization? [duplicate]更好的 MATLAB Plot3 可视化缺少什么? [复制]
【发布时间】:2015-07-21 13:56:48
【问题描述】:

我使用MATLABplot3函数制作了下图。

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


玩数据: 可视化数据为here。生成我当前图形的函数是here。评论 mArrow3 调用,或从 here 下载。

【问题讨论】:

  • 您能提供我们可以使用的示例数据吗?
  • @Benoit_11 我已将数据添加到我的问题中。

标签: matlab visualization data-visualization mplot3d


【解决方案1】:

为了更好地查看高度,您可以使用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)

【讨论】:

  • 不错!我借用了你的“虚拟数据”希望你不要介意!
  • @Benoit_11 当然不是!我通常也从其他人那里这样做:-)
【解决方案2】:

我认为问题可能是这类图所固有的:您的数据的 0d 点很难从透视角度解释,您的大脑无法破译数据点位于哪个深度。例如,在我看来,您在 z=0 和 x=15 以上没有数据点,这显然是错误的,但我的大脑将您的大部分数据点归因于 z=-5 平面。

除非您的数据点具有随距离成比例变化的有限体积(这不能用 matlab 完成,而且可能也无济于事),否则您可能需要重新考虑您的可视化方式。如果有 3 个图,每个图都带有沿 x、y 和 z 轴的相机?

编辑suggestion of Luis Mendo 让我觉得在尝试回答问题时我应该有更开放的心态:)

【讨论】:

    【解决方案3】:

    您还可以使用不同的颜色/标记/点大小来区分数据中的各个区域。例如,z 低于 0 的值为红色,高于 0 的值为绿色。这是一个使用scatter3 和4 个不同区域的简单示例。感谢 Luis Mendo 提供的虚拟数据。

    clc;clear;close all
    
    
    % // Random data...thanks Luis Mendo
    x = -20+50*rand(1,50);
    y = 150*rand(1,50);
    z = -5+10*rand(1,50);
    
    %// Get indices for various regions in your data
    region1 = find(z>=-4 & z<-2);
    region2 = find(z>=-2 & z<0);
    region3 = find(z>=0 & z<2);
    region4 = find(z>=2 & z<4);
    
    %// Draw each region with its own color/size
    scatter3(x(region1),y(region1),z(region1),20,'r','filled')
    hold on
    scatter3(x(region2),y(region2),z(region2),40,'y','*')
    scatter3(x(region3),y(region3),z(region3),60,'g','filled')
    scatter3(x(region4),y(region4),z(region4),80,'b')
    
    grid on
    
    view(-33, 14)
    

    【讨论】:

    • 好主意,我确实想过,但我想创建一个热图。因此,点颜色与点 Z 值成正比。但我失败了。
    • 当然!当然,您可以将所有区域选择自动化,这样您就不必手动输入它们。
    • 我为热图找到了一个很好的答案:here。但我会暂时不回答这个问题,以便听到更好的想法。
    • 是的,答案看起来非常好!
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 2020-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多