How do I retrieve the RGB data of a scatter plot from the CData values(a 1D vector corresponding to the array lengths X and Y) ?
15 次查看(过去 30 天)
显示 更早的评论
I have a scatter plot with x and y vector's as my data. I have colored using another 1D vector z which has the same number of rows as x and y. Now I would like to get the RGB values of the corresponding colors from the CData scalar values.
0 个评论
采纳的回答
Sangeetha Jayaprakash
2017-7-24
You can obtain the indices based on the colormap and the Z vector applied to the CData property. Then you can get the corresponding RGB values using the "ind2rgb" function as follows:
h = scatter(x,y);
h.CData = z;
Cdata = h.CData;
cmap = colormap;
% make it into a index image.
cmin = min(Cdata(:));
cmax = max(Cdata(:));
m = length(cmap);
index = fix((Cdata-cmin)/(cmax-cmin)*m)+1; %A
% Then to RGB
RGB = ind2rgb(index,cmap)
For information on the "ind2rgb" function, refer this link:
更多回答(1 个)
Walter Roberson
2017-7-25
See the file exchange contribution freezeColors which knows how to do the calculations to convert relative value to rgb
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Scatter Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!