如何使用 matlab 在具有不同颜色的 3D 大数据散点图中标记一个点(我有 x、y、z)?

How to mark a point (I have x,y,z for it) in a 3D big data scatter plot with different color using matlab?

我有两个 3D 体积图像,我想从第一个图像中定位一个点(我有这个点的特定 x、y 和 z 值)并用不同的颜色标记它。我的意思是我如何插入 x、y 和 z 的值,并在我的图形中的所有具有不同颜色的点内得到这个点。

假设您使用的是 scatter3,您可以只制作散点图,然后使用 "hold on" 并添加一个散点图,其中单个点的颜色将覆盖原始点,例如:

hold on; 
scatter3(x,y,z,'MarkerEdgeColor','k','MarkerFaceColor',[0 .75 .75]);

这里有 2 个选项:

选项 1

使用 hold 仅用您想要不同颜色的点覆盖另一个散点图:

data = rand(100,3); % some data
p = randi(100); % choose some point
scatter3(data(:,1),data(:,2),data(:,3),'Fill')
hold on
% here you plot only one point (p):
scatter3(data(p,1),data(p,2),data(p,3),'r','Fill')
hold off

选项 2

如果你想为多个点着色,and/or为你的点使用不同的颜色,第一次调用scatter时按点设置颜色可能会更好:

data = rand(100,3); % some data
p = randi(size(data,1),5,1); % choose some points
c = ones(size(data,1),1); % default color
c(p) = 2:(numel(p)+1); % set different color for each points in p
col = lines(numel(p)+1); % set the colormap for the points
scatter3(data(:,1),data(:,2),data(:,3),[],col(c,:),'Fill')