Scatter chart with colours from dark to light along the x-axis and blue to red along the y-axis

3 visualizzazioni (ultimi 30 giorni)
Hi,
I made a scatter based on interpolation of RGB colours (using only R and B) based on the y-axis data. Now I want the colours to change from dark to light based on the data of x axis. How can I do that? Thanks in advance!
Here is what I have right now and what I get:
b = [0 0 1]; % Blue
r = [1 0 0]; % Red
x =[27.5 26.8 68 70.5 43.5 45.2 72];
y = [7.2 3 7.9 1.7 4.23 1.057 0.89];
y_min_max = [min(y);max(y)];
color = interp1(y_min_max,[b;r],y);
figure()
s = scatter(x,y,80,color,'filled');
grid on; grid minor; box on
xlabel('x')
ylabel('y')

Risposta accettata

William Rose
William Rose il 5 Gen 2023
Modificato: William Rose il 5 Gen 2023
b = [0 0 1]; % Blue
r = [1 0 0]; % Red
%x =[27.5 26.8 68 70.5 43.5 45.2 72];
%y = [7.2 3 7.9 1.7 4.23 1.057 0.89];
x = rand(1,1000);
y = rand(1,1000);
y_min_max = [min(y);max(y)];
color = interp1(y_min_max,[b;r],y); %initial color based on y value
lightness=(x-min(x))/(max(x)-min(x)); %lightness of each point, in [0,1]
lightness=repmat(lightness',1,3);
color2=color.*lightness; %adjust lightness of each point
figure()
s = scatter(x,y,80,color2,'filled');
grid on; grid minor; box on
xlabel('x')
ylabel('y')
Good luck.
  4 Commenti
William Rose
William Rose il 17 Gen 2023
@T, you're welcome. The answer I posted as a comment is better, in my opinion, than my initial answer. Good luck.

Accedi per commentare.

Più risposte (0)

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by