How do I make a plot with specific RGB color values for each marker from the same data set?

22 vues (au cours des 30 derniers jours)
If I have an x and y vector and want to plot them with a specific RGB color value, how would I do that? Ideally, I would like to have a matrix of color values that would coincide with the x and y values. In addition, I was hoping to define x values with something like x=(-50:0.004:50) but I couldn't get MATLAB to plot the corresponding y and color values correctly.
I was initially thinking about using a for loop with hold on and plotting each data point separately, but that significantly slows down MATLAB when you have a lot of data points.
Here's a simplified example of the plot I am hoping to make.
hold on
vrty=50; %number of data points
colors=[hsv(vrty)]; %Defined colors I want to use
for i=1:vrty %loops figure until done with points
x=i;
y=cos(x*pi/vrty);
h=plot(x,y,'o');
cmatrix_size=size(colors);
color=colors((i),:);
set(h,'MarkerEdgeColor','none','MarkerSize',4,'MarkerFaceColor',color)
end

Réponses (1)

Chad Greene
Chad Greene le 20 Juin 2014
The scatter function accepts rgb color values corresponding to each point. It'll help you avoid using a loop.
  2 commentaires
Chad Greene
Chad Greene le 20 Juin 2014
Here's the code:
colors=[hsv(vrty)];
scatter(1:50,cos((1:50)*pi/50),30,colors,'filled')
Chad Greene
Chad Greene le 20 Juin 2014
On a side note, as an alternative to the hsv color map, you can use rgbmap. I've included your example in the documentation file.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Graphics Performance dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by