How can i make graph something like this?
1 回表示 (過去 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 で Discrete Data Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!