scatter plot with color gradient on y-values

조회 수: 127 (최근 30일)
Alejandro Fernández
Alejandro Fernández 2020년 6월 8일
댓글: Alejandro Fernández 2020년 6월 8일
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');
colormap(c);
colorbar
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.
HTH

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Line Plots에 대해 자세히 알아보기

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by