显示自定义色彩图中矩阵的值(Matlab)

时间:2012-12-21 07:29:03

标签: matlab map colors customization colorbar

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

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

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-maximal之间第四列的价值,我给了蓝色。

现在,我需要显示colormap jet中每个矩阵的第4列中的每个值,没有任何条件。

1 个答案:

答案 0 :(得分: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
相关问题