How can i make graph something like this?
1 view (last 30 days)
Show older comments
Firman Pahrizal
on 1 May 2017
Commented: Firman Pahrizal
on 5 May 2017
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
regards,
fireman
0 Comments
Accepted Answer
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: https://www.mathworks.com/help/matlab/ref/scatter.html#btrli6o-1_1
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
end
You can test the above code as follows:
y = rand(1,1000) .* 10;
x = rand(1,1000) .* 10;
c=MyColorBar(x,y);
scatter(x,y,25,c,'filled')
More Answers (0)
See Also
Categories
Find more on Discrete Data Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!