3D scatter plot with 4D data

偶尔善良 提交于 2019-11-26 22:12:34

问题


I need to plot a 3D figure with each data point colored with the value of a 4th variable using a colormap. Lets say I have 4 variables X,Y,Z and W where W = f(X,Y,Z). I want a 3D plot with X, Y, and Z as the three axis. The statement scatter3(X,Y,Z,'filled','b') gives me a scatter plot in 3D but I want to incorporate the value of Z in the graph by representing the points as an extra parameter (either with different areas :bigger circles for data points with high value of Z and small circles for data points with low value of Z or by plotting the data points with different colors using a colormap). However, I am a novice in MATLAB and dont really know how to proceed. Any help will be highly appreciated.

Thanks in advance!


回答1:


So just use z for the size vector (4th input) as well as the color vector (5th input):

z = 10*(1:pi/50:10*pi);
y = z.*sin(z/10);
x = z.*cos(z/10);

figure(1)
scatter3(x,y,z,z,z)

view(45,10)
colorbar

The size vector needs to be greater 0, so you may need to adjust your z accordingly.




回答2:


You are already nearly there... simply use

scatter3(X,Y,Z,s,W);

where s is the point size (scalar, e.g. 3) and W is a vector with your W values. You might also want to issue an

set(gcf, 'Renderer','OpenGL');

where gcf gets your current figure you are plotting in to significantly increase responsiveness when scattering a lot of data.



来源:https://stackoverflow.com/questions/25816470/3d-scatter-plot-with-4d-data

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!