MATLAB Answers

How can i make graph something like this?

1 view (last 30 days)
i want to make graph something like this how i can do this. every dots have a different color based on mean on weighted value. what kind of function to make something like this? if anyone can provide me with different example i would appreciate it


Sign in to comment.

Accepted Answer

Kevin Gleason
Kevin Gleason on 3 May 2017
Edited: Walter Roberson on 3 May 2017
The bases of this graph is a scatter plot. You can provide a scatter plot with a colormap that supplys a color for each individual dot:
x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
c = linspace(1,10,length(x));
scatter(x,y,[],c, 'filled')
colorbar; % display color bar to right
In the case of the graph you mentioned, c is an M-by-3 matrix, which defines an RGB value for each dot based on mean weighted value. You will need to generate this M-by-3 matrix.
We can create a "jet" colormap, and index into it to choose a color based on the graphic above:
function c = MyColorBar(xData,yData)
spectrum = jet(10); % Generate 10 RGB values
data = xData+yData;
result = (data - min(data))./(max(data) - min(data)) .* 9; % normalize values to 0-9
indices = floor(result) + 1; % indices for each value 1-10
c = spectrum(indices,:); % return proper color values for each point
You can test the above code as follows:
y = rand(1,1000) .* 10;
x = rand(1,1000) .* 10;

  1 Comment

Firman Pahrizal
Firman Pahrizal on 5 May 2017
Thank you so much kevin and walter for your reply to this question. because i am not soo good at matlab and it helps me a lot. i will try my data and let see. if it works ,i will let you know. basically the dot is an 3d axis and each dot has a 2 data comparison between force and density. if the force and density correlated and the weighted mean will be around 1 so when i plotted should be like that.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by