组线与散点组颜色相同
group-lines same color as scatter-groups
我正在绘制不同颜色的分组散点图。我让 Matlab 决定颜色,它使用平面映射到(默认?)颜色图中。
我需要使用与线条散点组中相同的颜色。
但是,行的默认 ColorOrder
与散点图的不同。 因此,重置 ColorOrderIndex
不能解决问题。
目前我可以制作如下:
与:
% Data
N = 3;
T = 5;
xm = [6.3327 4.5682 6.1398
7.6289 5.4423 10.5246
3.5362 6.2185 8.2151
6.6572 9.4543 7.4266
6.1138 8.6453 8.2044];
ym = [7 0 7
11 0 55
1 1 18
14 6 12
8 2 22];
lm = [6.8176 0.3609 6.9693
13.0347 0.5587 62.4217
1.6841 0.8237 19.6712
8.0186 4.1533 13.2623
6.1108 2.7716 19.5666]
% Scatter groups
g = kron((1:N)',ones(T,1)); %// '
hs = scatter(xm(:),ym(:),[],g,'filled');
hold on
% Poisson group-fits
[xmsorted,posxm] = sort(xm);
posxm = bsxfun(@plus, (0:N-1)*T, posxm);
hl = plot(xmsorted,lm(posxm));
我试图从散点中获取 CDATA
,它基本上是我的 g
(组索引),并用它直接索引到默认颜色图中,但似乎散点使用不同的颜色图?
似乎 scatter
缩放到图的 colormap
,而不是使用直接索引。所以如果 cm = colormap;
那么
round(1:((size(cm, 1) - 1) / (N - 1)):size(cm, 1))
应该return颜色图中的索引(参见this question)。默认 colormap
是 'parula',因此如果 scatter
使用直接索引而不是缩放,则组将具有非常相似的颜色。
要使后续的线图使用 scatter
的颜色,您可以使用
cm(round(1:((size(cm, 1) - 1) / (N - 1)):size(cm, 1)));
设置绘图的线条颜色。
或者,您可以更改图的 colormap
:假设颜色顺序是默认值(即新的 plot
以自然顺序从 lines
获取颜色),
colormap(lines(N));
其中 N
是组数,应使 scatter
和线条颜色匹配。
我正在绘制不同颜色的分组散点图。我让 Matlab 决定颜色,它使用平面映射到(默认?)颜色图中。
我需要使用与线条散点组中相同的颜色。
但是,行的默认 ColorOrder
与散点图的不同。 因此,重置 ColorOrderIndex
不能解决问题。
目前我可以制作如下:
与:
% Data
N = 3;
T = 5;
xm = [6.3327 4.5682 6.1398
7.6289 5.4423 10.5246
3.5362 6.2185 8.2151
6.6572 9.4543 7.4266
6.1138 8.6453 8.2044];
ym = [7 0 7
11 0 55
1 1 18
14 6 12
8 2 22];
lm = [6.8176 0.3609 6.9693
13.0347 0.5587 62.4217
1.6841 0.8237 19.6712
8.0186 4.1533 13.2623
6.1108 2.7716 19.5666]
% Scatter groups
g = kron((1:N)',ones(T,1)); %// '
hs = scatter(xm(:),ym(:),[],g,'filled');
hold on
% Poisson group-fits
[xmsorted,posxm] = sort(xm);
posxm = bsxfun(@plus, (0:N-1)*T, posxm);
hl = plot(xmsorted,lm(posxm));
我试图从散点中获取 CDATA
,它基本上是我的 g
(组索引),并用它直接索引到默认颜色图中,但似乎散点使用不同的颜色图?
似乎 scatter
缩放到图的 colormap
,而不是使用直接索引。所以如果 cm = colormap;
那么
round(1:((size(cm, 1) - 1) / (N - 1)):size(cm, 1))
应该return颜色图中的索引(参见this question)。默认 colormap
是 'parula',因此如果 scatter
使用直接索引而不是缩放,则组将具有非常相似的颜色。
要使后续的线图使用 scatter
的颜色,您可以使用
cm(round(1:((size(cm, 1) - 1) / (N - 1)):size(cm, 1)));
设置绘图的线条颜色。
或者,您可以更改图的 colormap
:假设颜色顺序是默认值(即新的 plot
以自然顺序从 lines
获取颜色),
colormap(lines(N));
其中 N
是组数,应使 scatter
和线条颜色匹配。