【问题标题】:Display values from a matrix in a custom colormap (Matlab)在自定义颜色图中显示矩阵中的值(Matlab)
【发布时间】:2012-12-21 07:29:03
【问题描述】:

我想根据矩阵包含的值来可视化矩阵。我有一个单元格,其中包含 11 个矩阵,每个矩阵有 4 列,它们是 x、y、z(坐标)及其值。我想用位置 x、y、z 可视化这个值,并根据这些值定义我自己的颜色图,然后显示颜色条。我想使用 jet 作为颜色图。我想用蓝色来描述最大值,用红色来描述颜色图上的最小值。最大值和最小值之间的值具有红色到蓝色之间的颜色。

这是我已经尝试过的代码:

figure;
hold on
for i=1:length(diameter_lca)
    L2 = diameter_lca{i};
    dl1 = find(L2(:,4) > minimal_lca & L2(:,4)<2);%diameter 0-2
    dl2 = find(L2(:,4) >= 2 & L2(:,4) <= maksimal_lca);%diameter>2-maksimal
    x=L2(:,1);
    y=L2(:,2);
    z=L2(:,3);
    plot3(y(dl1),x(dl1),z(dl1),'*','Color','r');
    plot3(y(dl2),x(dl2),z(dl2),'*','Color','b');
end
daspect([0.488281 0.488281 0.625000]);
view(3); axis tight
camlight

在上面的代码中,我所做的是可视化每个矩阵第 4 列的值,然后我做了一个条件,如果值在 0-2 之间,我给出红色,当它在 2-最大值之间第 4 列的值,我给了蓝色。

现在,我需要在颜色映射 jet 中显示每个矩阵的第 4 列中的每个值,而不需要任何类似的条件。

【问题讨论】:

    标签: matlab map colors customization colorbar


    【解决方案1】:

    最简单的方法是使用scatter3

    %# make jet colormap from red to blue
    cmap = flipud(jet(128));
    
    %# plot values
    figure,
    scatter3(L(:,1),L(:,2),L(:,3),[],L(:,4),'marker','*')
    
    colormap(cmap)
    colorbar
    

    【讨论】:

    • 有效!非常感谢 :)。但我还有一个问题。如果我想将其显示为一条线或使用破折号而不是星号 (*)
    • 在这种情况下,您可能需要从 Matlab File Exchange 下载并使用cline。另外,如果您觉得我的回答有帮助,请考虑投票和/或接受它。
    • 哦,对不起,我接受您的回答并点赞。非常感谢。哦,那个 cline,我也试过了,但是你给我的方法(scatter3)比 cline 效果更好。我无法在这里上传结果图像,但我更喜欢你的方法。非常感谢:)
    猜你喜欢
    • 2017-04-14
    • 2013-08-12
    • 2017-01-23
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多