How can i make graph something like this?
2 次查看(过去 30 天)
显示 更早的评论
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/163601/image.png)
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 个评论
采纳的回答
Kevin Gleason
2017-5-3
编辑:Walter Roberson
2017-5-3
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')
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Colormaps 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!