我正在使用以下代码
PropertyGroup
产生这个数字
我有两个简单的问题:
是否可以将每种颜色的颜色条字符串条目居中?例如,条目“Non-Durables”不应位于颜色条的底部,而应位于最暗的蓝色类别的中间。
是否可以手动选择每个类别的颜色?
答案 0 :(得分:1)
关于第一个问题,您只需修改:
caxis([0.5 12.5]);
我不确定你理解你的第二个问题,但我会说没有简单的方法。
答案 1 :(得分:1)
Ratbert几乎回答了第一个问题。但是,为了完整起见,只需执行此操作并替换当前的caxis
电话:
caxis([0.5 12.5]);
要回答第二个问题,是的,你可以。
如果您在代码中注意到,您生成了jet
主题中12个组件的颜色映射。这会生成一个12 x 3矩阵,其中每个行都是唯一的颜色。因此,如果您想手动选择颜色,只需重新排列颜色的顺序即可。如果您查看绘图中的颜色条标签,第一种颜色从底部开始,或蓝色,并且进展到顶部,或红色。
作为参考,这是由jet(12)
生成的矩阵:
>> cmap = jet(12)
cmap =
0 0 0.6667
0 0 1.0000
0 0.3333 1.0000
0 0.6667 1.0000
0 1.0000 1.0000
0.3333 1.0000 0.6667
0.6667 1.0000 0.3333
1.0000 1.0000 0
1.0000 0.6667 0
1.0000 0.3333 0
1.0000 0 0
0.6667 0 0
每行包含一个唯一的RGB元组,其中第一列表示红色量,第二列表示绿色量,第三列表示蓝色量。因此,前两种颜色是纯蓝色,然后在该点之后逐渐添加绿色阴影以使其成为青色,依此类推。
矩阵的排列使得第一种颜色是第一行,最后一种颜色是最后一行。如果您想确定哪种颜色需要哪种颜色,您只需要重新排列这些行,以便它与您想要的任何标签相匹配。
因此,您有一组标签:
labels = {'Non-Durables','Durables','Manufacturing','Oil, Gas and Coal ','Chemicals','Technology','Telephone & TV','Utilities','Wholesale and Retail','Health','Finance','Other'};
...目前,您有一个颜色映射中出现颜色的顺序:
cmap = jet(12);
order = [1 2 3 4 5 6 7 8 9 10 11 12]; %// or order = 1:12;
cmap = cmap(order,:);
您所要做的就是更改order
,以便获得正确的颜色以正确的顺序显示。因此,请参考图像中的颜色条,并确定每种颜色的位置,使其符合order
的相同位置。例如,如果您想反转颜色排序,您可以这样做:
cmap = jet(12);
order = [12 11 10 9 8 7 6 5 4 3 2 1]; %// or order = 12:-1:1;
cmap = cmap(order,:);
同样地,如果你想要先将黄色和青色的颜色放在第一位,而其余的颜色先来,你会这样做:
cmap = jet(12);
order = [8 4 5 6 7 1 2 3 9 10 11 12];
cmap = cmap(order,:);
执行此操作后,您在colormap
上致电cmap
并继续您的情节:
%// From before
cmap = jet(12);
order = [4 5 6 8 7 1 2 3 9 10 11 12];
cmap = cmap(order,:);
%// New
colormap(cmap);
hold on
plot(n, d3,'b-');
scatter(n, d3, [], RiskierInd, 'filled');
caxis([0.5 12.5]); %// Change
colorbar('YTick',[1:12],...
'YTickLabels',{'Non-Durables','Durables','Manufacturing','Oil, Gas and Coal ','Chemicals','Technology','Telephone & TV','Utilities','Wholesale and Retail','Health','Finance','Other'})
datetick('x','mm-yyyy')
但是,如果您想自己手动选择颜色,那么会更多地参与其中。您只需要知道您想要的颜色然后将它们放入矩阵中。请记住,每种颜色都是RGB元组,并放在一行中。您必须查看颜色选择器,但要知道每个组件应该加权以获得正确的颜色。
转到此处:http://jsbin.com/kulihi/8/watch?html,js,output - 您可以选择所需的确切颜色并记录RGB值。之后,将每个值除以255,并将其作为颜色映射矩阵中的条目。每种颜色都是一行,第一列是红色,第二列是绿色,第三列是蓝色。如果您真的想要控制什么颜色与哪个类别相关。您必须直接确定红色,绿色和蓝色值的正确组合。
祝你好运!