MATLAB Answers

scatter plot with color gradient on y-values

조회 수: 147(최근 30일)
Hello, I have a question: when making a scatterplot with a color gradient, what I want is that this gradient is applied to the values on the Y axis, not to those on the X axis (which is what I manage to do with the code at the bottom)
close all; clear all; clc
load data.mat
data = flipud(data.').';
% Create colormap
len = 50;
c1 = [5, 25, 150]/255;
c2 = [245, 225, 235]/255;
c = [linspace(c1(1),c2(1),len)', linspace(c1(2),c2(2),len)', linspace(c1(3),c2(3),len)'];
% Scatter data
scatter(data(1, :), data(2, :), 10, 1:size(data,2), 'filled');
What I mean is that, being the data of the Y axis number that goes from 0 to 1, and I take into account that the color scale goes from dark blue for low values to pink for high values, if you have the points (x,y) (5,0.75), (6,0.80) and (7,0.40) what I want to achieve is that the point (7,0.40) is the most blue, the (6,0.80) the most pink and therefore the point (5,0.75) has an intermediate color.

채택된 답변

Bjorn Gustavsson
Bjorn Gustavsson 2020년 6월 8일
That should be as easy as:
scatter(data(1, :), data(2, :), 10, data(2,:), 'filled');
You can modify the scaling of the colour-argument of you want a different look, sqrt, log or whatever, and then make the corresponding change to colorbar etc.
  댓글 수: 1
Alejandro Fernández
Alejandro Fernández 2020년 6월 8일
Thank you so much, it works!!!

댓글을 달려면 로그인하십시오.

추가 답변(0개)




Community Treasure Hunt


Start Hunting!

Translated by