在BarChart中使用打火机自定义颜色

500*_*500 2 wolfram-mathematica colors bar-chart

请考虑 :

 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]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我不明白如何将颜色分配给列表并在列表中赋值.

在这里,我的希望是让每个子列表(第一个是:{901,503,522,1305})分配一种颜色(部分[[]]的cogColors).然后每个酒吧将是更深/更轻但相似的颜色.下面是所需的输出(ppt):

在此输入图像描述

Dr.*_*ius 5

BarChart[MapThread[
  Style, {dalist, 
   Transpose@
    Reverse@NestList[Lighter, {Red, Green, Blue, Yellow}, 3]}, 2]]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

由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]]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Sjo*_*ies 5

BarChart[dalist, ChartStyle -> {cogColors, Opacity /@ {0.4, 0.6, 0.8, 1}}]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

关键在于ChartStyle的doc页面中的以下句子:

使用ChartStyle - > {spec_1,spec_2,...}形式,嵌套数据集列表中的i,j,...元素具有通过应用spec_1 [[i]]给出的样式,然后是spec_2 [[j] ]等

这意味着您必须找到具有累积效果的指令.不透明度和颜色的组合有这个.如果你结合各种颜色,你最终会得到最后一种颜色.