Настройте цвет, используя зажигалку в BarChart - PullRequest
2 голосов
/ 16 сентября 2011

Пожалуйста, примите во внимание:

 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]

enter image description here

Я не понимаю, как назначить цвет для списка и для значения в списке.

Вот мойНадеемся, что каждому подсписку (первый из которых: {901, 503, 522, 1305}) назначен один цвет (часть [[]] из cogColors).Тогда каждая полоса будет темнее / светлее, но похожего цвета.Ниже приведен желаемый результат (ppt):

enter image description here

Ответы [ 2 ]

5 голосов
/ 16 сентября 2011
BarChart[dalist, ChartStyle -> {cogColors, Opacity /@ {0.4, 0.6, 0.8, 1}}]

enter image description here

Суть в следующем предложении на странице документа ChartStyle:

С формой ChartStyle -> {spec_1, spec_2,...}, элемент i, j, ... во вложенном списке наборов данных имеет стиль, заданный путем применения spec_1 [[i]], затем spec_2 [[j]] и т. д.

Это означает, что вы должны найти директивы, которые имеют кумулятивный эффект.Сочетание непрозрачности и цвета имеет это.Если вы комбинируете различные цвета, вы получаете последний.

5 голосов
/ 16 сентября 2011
BarChart[MapThread[
  Style, {dalist, 
   Transpose@
    Reverse@NestList[Lighter, {Red, Green, Blue, Yellow}, 3]}, 2]]

enter image description here

Редактирование 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]]

enter image description here

...