问题:
如何在自定义的Matlab颜色栏中指定颜色转换?
明确地,
我想让黄色(见下文)覆盖色条的更多区域(可能是[19.5–21.5]或类似的区域)。
使用
this answer
,我可以在Matlab中创建自定义颜色栏。我在试着理解
this answer
可能是相关的。
下面是完整的代表性示例
(Matlab r2017a)
% Data
X = [22.6 22.8 22.6 20.45 22.3 18.15 19.95 20.8]';
Y = [84 89 63 81 68 83 77 52]';
Z = [23.0 22.695 21.1450 21.5 22.09 20.5 22.075 20.915]';
% Create custom colormap
% Reference: https://stackoverflow.com/questions/24488378/how-to-map-a-specific-value-into-rgb-color-code-in-matlab/24488819#24488819
col3 = [0 1 0]; %G
col2 = [1 1 0]; %Y
col1 = [1 0 0]; %R
n1 = 20; n2 = 20;
cmap=[linspace(col1(1),col2(1),n1);linspace(col1(2),col2(2),n1);linspace(col1(3),col2(3),n1)];
cmap(:,end+1:end+n2)=[linspace(col2(1),col3(1),n2);linspace(col2(2),col3(2),n2);linspace(col2(3),col3(3),n2)];
cmap = cmap';
% Plot
colormap(cmap), hold on, box on
p = scatter(X,Y,[],Z,'filled','DisplayName','Data3');
cb = colorbar;
cb.Limits = [18 23];
cb.Ticks = [18:1:23];
% Cosmetics
p.MarkerEdgeColor = 'k';
xlabel('X')
ylabel('Y')
cb.Label.String = 'Z';