三维点数据:
lights =
41.5000 0 33.0000
48.0000 0 29.0000
52.5000 0 25.0000
56.0000 0 20.0000
60.0000 0 15.0000
63.0000 0 9.0000
54.5596 -31.5000 9.0000
51.9615 -30.0000 15.0000
48.4974 -28.0000 20.0000
45.4663 -26.2500 25.0000
41.5692 -24.0000 29.0000
35.9401 -20.7500 33.0000
20.7500 -35.9401 33.0000
24.0000 -41.5692 29.0000
26.2500 -45.4663 25.0000
28.0000 -48.4974 20.0000
30.0000 -51.9615 15.0000
31.5000 -54.5596 9.0000
-0.0000 -63.0000 9.0000
-0.0000 -60.0000 15.0000
-0.0000 -56.0000 20.0000
-0.0000 -52.5000 25.0000
-0.0000 -48.0000 29.0000
-0.0000 -41.5000 33.0000
-20.7500 -35.9401 33.0000
-24.0000 -41.5692 29.0000
-26.2500 -45.4663 25.0000
-28.0000 -48.4974 20.0000
-30.0000 -51.9615 15.0000
-31.5000 -54.5596 9.0000
-54.5596 -31.5000 9.0000
-51.9615 -30.0000 15.0000
-48.4974 -28.0000 20.0000
-45.4663 -26.2500 25.0000
-41.5692 -24.0000 29.0000
-35.9401 -20.7500 33.0000
-41.5000 0.0000 33.0000
-48.0000 0.0000 29.0000
-52.5000 0.0000 25.0000
-56.0000 0.0000 20.0000
-60.0000 0.0000 15.0000
-63.0000 0.0000 9.0000
-54.5596 31.5000 9.0000
-51.9615 30.0000 15.0000
-48.4974 28.0000 20.0000
-45.4663 26.2500 25.0000
-41.5692 24.0000 29.0000
-35.9401 20.7500 33.0000
-20.7500 35.9401 33.0000
-24.0000 41.5692 29.0000
-26.2500 45.4663 25.0000
-28.0000 48.4974 20.0000
-30.0000 51.9615 15.0000
-31.5000 54.5596 9.0000
0.0000 63.0000 9.0000
0.0000 60.0000 15.0000
0.0000 56.0000 20.0000
0.0000 52.5000 25.0000
0.0000 48.0000 29.0000
0.0000 41.5000 33.0000
20.7500 35.9401 33.0000
24.0000 41.5692 29.0000
26.2500 45.4663 25.0000
28.0000 48.4974 20.0000
30.0000 51.9615 15.0000
31.5000 54.5596 9.0000
54.5596 31.5000 9.0000
51.9615 30.0000 15.0000
48.4974 28.0000 20.0000
45.4663 26.2500 25.0000
41.5692 24.0000 29.0000
35.9401 20.7500 33.0000
三维散点图绘制及标记:
clc
close all
clear all
lights = load('lights.txt');
H = size(lights,1);
mark = []; % 建立标记数组
for i = 1:H
mark = [mark;num2str(i,'%02d')]; % 保证数组长度一致
end
c = lights(:,3) % 或者c = 1:72 任意长度为72的数组均可以 按数值大小表达颜色
bias = 3 % 标记位置偏差, 避免实心点遮盖了标记内容,流出空间
figure
scatter3(lights(:,1),lights(:,2),lights(:,3),100,c,"filled")
xlabel('X')
ylabel('Y')
zlabel('Z')
xlim([-100 100])
ylim([-100 100])
zlim([0 60])
text(lights(:,1) + bias,lights(:,2) + bias,lights(:,3),mark,'color','r','FontSize',13) % z轴方向无偏差
h = colorbar;
set(get(h,'label'),'string','positions');%colorbar name
Reference: