4d plot in order to create a surface with density from 4 vectors ( coordinates of the dots). X, Y, Z and C is the color.

14 visualizaciones (últimos 30 días)
Hi,
I wanto to create a 4d plot, like isosurface. The data is attached. 4 vectors, xyz and color.
The problem is that I only have 4 vectors, XYZ is position in the space which creates the object and c is the color of that point.
I am kind of lost. Maybe I need to use meshgrid but the vectors has 37k points.
Thanks

Respuesta aceptada

Akira Agata
Akira Agata el 21 de Oct. de 2019
OK. Then, how about the following?
% Load data
load('object.mat')
% Create meshgrid
[xq, yq, zq] = meshgrid(min(x):5:max(x),min(y):5:max(y),min(z):5:max(z));
% Assign data to the grid point
cq = nan(size(xq));
[~, pos] = ismember([x,y,z],[xq(:),yq(:),zq(:)],'rows');
cq(pos) = c;
% Find boundary points location
k = boundary(x,y,z,1);
% Create isosurface levels and color
N = 8;
color = jet(N);
v = linspace(min(c),max(c),N);
% Visualize the result
figure
hold on
for kk = 1:N
p = patch(isosurface(xq,yq,zq,cq,v(kk)),...
'FaceColor', color(kk,:),...
'EdgeColor', 'none',...
'FaceAlpha', 0.2);
isonormals(xq,yq,zq,cq,p)
end
trisurf(k,x,y,z,...
'Facecolor', 'b',...
'FaceAlpha', 0.1,...
'Edgecolor', 'none')
view(120,30);
camlight('headlight')
lighting gouraud
grid on
isosurface.png
  2 comentarios
Rafael Freire
Rafael Freire el 21 de Oct. de 2019
THAT IS PERFECT!!!!!! Exactly what I needed. Thank you very very much!!!! I spent more than a week trying to solve this.
Rafael Freire
Rafael Freire el 21 de Oct. de 2019
Editada: Rafael Freire el 21 de Oct. de 2019
BTW, many people are having the same issue. I read tons of Q&A and doubts regarding this issue during this week and all of them were unclear how solve it. Once again thank you very much. Maybe it sounds good to create a topic on it."From 4d xyzc coordinates to a surface plot"

Iniciar sesión para comentar.

Más respuestas (1)

Akira Agata
Akira Agata el 19 de Oct. de 2019
How about simply using scatter3 function, like:
load('object.mat')
figure
scatter3(x,y,z,[],c,'.')
colorbar
scatter3.png
  1 comentario
Rafael Freire
Rafael Freire el 19 de Oct. de 2019
HI.
Thank you for your answer. I arealdy tryed that but i didint work.
The final result that I need is like the pic below. objectReal.png

Iniciar sesión para comentar.

Categorías

Más información sobre Surface and Mesh Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by