How can I create a 3D plot of data with dots of different color?
95 次查看(过去 30 天)
显示 更早的评论
Hello everyone,
I have to create a 3D visualization of some data that I have. I have 2 vectors that represent mean and standard deviation of my data. I have to plot them in a 3d graph in which each point of the graph contains a pair of (mean,sd) value, and for each pair I have to draw a cloured point. The colour depends on the values of the mean (ex: red=high value, blu=low value).
Thank you, cordially
Carlotta
4 个评论
Adam Danz
2020-2-19
The question is still unclear. This is how I understand it so far. Please either confirm or correct the following steps or replace them completely with more descriptive ones.
- So, you have two nx1 (or 1xn) vectors: one for the means, one of the stds.
- And you have a nx3 (or 3xn) matrix of [x,y,z] coordinates.
- You want to create a scatter plot of the [x,y,z] coordinates in a 3D plot and color-code each point based on the mean value (the std values aren't used).
采纳的回答
Adam Danz
2020-2-19
编辑:Adam Danz
2020-2-19
Use scatter3() to create the 3D scatter plot and scale the colors based on a vector of mean values.
% Create 100x3 matrix of [x,y,z] coordinates
xyz = randi(1000,100,3);
% Create 100x1 vector of means
mu = rand(100,1).*5;
% Create 3D scatter plot, colorcode the values based on mu values
scatter3(xyz(:,1),xyz(:,2),xyz(:,3), 40, mu, 'filled')
xlabel('x')
ylabel('y')
zlabel('z')
% equate aspect ratio (if needed)
axis equal
% Add colorbar if desired
cb = colorbar();
title(cb, 'Means')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/272609/image.png)
更多回答(2 个)
Mil Shastri
2020-2-19
Check out this video starting from 18:04 https://www.mathworks.com/videos/matlab-for-excel-users-81634.html
At 19:04, Adam defines the color of the points. He also shows how you can have MATLAB automatically generate code for the customizations.
Sky Sartorius
2020-2-19
Use a scatter plot and CData:
n = 100;
xData = 1:n; % Placeholder - I assume you have additional information about the data to locate it in 3D space.
meanData = rand(n,1);
stdData = randn(n,1).^2;
scatter(xData,meanData,'CData',stdData);
h = colorbar;
h.Label.String = 'Standard deviation'
ylabel('Mean')
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Scatter Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!