使用scatter3用3D立方体填充空间

时间:2015-10-05 04:34:41

标签: matlab plot

我是MATLAB的业余用户,我希望有一个4D颜色图,颜色代表第四维。我尝试使用scatter3如下:

fid = fopen('abc.dat','r');
datacell = textscan(fid, '%f%f%f%f'); 
fclose(fid);

all_data = cell2mat(datacell); %converted into a matrix 

boxx = all_data(:,1);
boxy = all_data(:,2);
boxz = all_data(:,3);
disden = all_data(:,4); %color depends on the value of disden

scatter3(boxx,boxy,boxz,400,disden,'filled') 

xlabel('Box x')
ylabel('Box y')
zlabel('Box z')
cb = colorbar;      % create  the colorbar
set(get(cb,'title'),'string','Dislocation Density(m^{-2})'); % label colobar

虽然它有效但我希望整个空间可以用立方体填充而不是上面的情况。在上述情况下,仅使用斑点,因此即使它们的大小可以设置它们仍然不能填满空间。我的所有x,y,z值都是整数,我可以使用尺寸为1x1x1的立方体和第四维定义的颜色,以便整个空间可以填满吗?

另一个问题是颜色条的标签太靠近颜色条中显示的数字并且它们重叠。我可以设置条形标签的位置,使其稍远一点吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

如果x和y不均匀,即每个网格交叉处的值,则无法覆盖整个体积。您需要插入输入数据。

检查"非均匀采样数据的表面图"例如here