请考虑:
dalist = {{901, 503, 522, 1305}, {910, 512, 477, 1260},
{847, 459, 556, 1275}, {799, 517, 527, 1197}}
cogColors = {RGBColor[0, 0, 1], RGBColor[1, 0, 0], RGBColor[0, 1, 0], RGBColor[1, 1, 0]}
BarChart[dalist, ChartStyle -> cogColors]
我不明白如何将颜色分配给列表和列表中的值。
这里我的希望是让每个子列表(第一个是:{901,503,522,1305})分配一种颜色(部分[[]]的cogColors)。然后每个酒吧将是更深/更轻但相似的颜色。下面是所需的输出(ppt):
答案 0 :(得分:5)
BarChart[MapThread[
Style, {dalist,
Transpose@
Reverse@NestList[Lighter, {Red, Green, Blue, Yellow}, 3]}, 2]]
由Verbeia编辑
您可以使用Blend
以及MapThread
和Style
的这种方法来获得您想要的任何颜色组合,例如:
extColours =
Outer[Blend[{#1, GrayLevel[0.1]}, #2] &, cogColors, {0.2, 0.4, 0.6, 0.8}];
BarChart[MapThread[Style, {dalist, extColours}, 2]]
答案 1 :(得分:5)
BarChart[dalist, ChartStyle -> {cogColors, Opacity /@ {0.4, 0.6, 0.8, 1}}]
关键在于ChartStyle的doc页面中的以下句子:
使用ChartStyle-> {spec_1,spec_2,...}形式,嵌套列表中的i,j,...元素 数据集具有通过应用spec_1 [[i]]给出的样式,然后 spec_2 [[j]]等。
这意味着您必须找到具有累积效果的指令。不透明度和颜色的组合有这个。如果你将各种颜色组合在一起,最后会得到最后一种颜色。