How can i make graph something like this?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Firman Pahrizal
am 1 Mai 2017
Kommentiert: Firman Pahrizal
am 5 Mai 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 Kommentare
Akzeptierte Antwort
Kevin Gleason
am 3 Mai 2017
Bearbeitet: Walter Roberson
am 3 Mai 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')
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Data Distribution Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!