В вашем коде нет ничего, что указывало бы на то, что график должен иметь цвета.Если вы задаете цвета в PROC SGPLOT, они учитываются и переопределяют стиль.СТИЛЬ, который вы выбрали, это журнал, который предназначен для печатных журналов (эоны назад) и не включает цвет по дизайну.
Это показывает разницу, когда первый график получается с цветами, а второй нет и принимает стиль по умолчанию для журнала.
Как отметил другой пользователь, вы можете выбрать другой стиль и получить автоматические цвета, но это цвета шаблона, а не то, что вы выбираете.Существуют различные методы для определения цвета в SGPLOT, подход, использованный здесь, немного излишний, но пример документации так прост в использовании и копировании / вставке.Этот метод обычно используется для обеспечения того, чтобы элементы отображались одинаково на нескольких графиках, даже если возможно пропущены значения, потому что SAS циклически изменяет цвета независимо от групп / пропусков.
data fruit_sales;
input Fruit $ Sales;
datalines;
Apples 40
Pears 25
Oranges 50
Grapes 30
Bananas 60
run;
data attrmapfruit;
retain linecolor "black";
input id $ value $ fillcolor $;
datalines;
fruit Apples red
fruit Pears green
fruit Oranges orange
fruit Grapes purple
fruit Bananas yellow
;
run;
ods rtf file='/folders/myfolders/demo.rtf' style=journal;
title "Fruit Sales V01 - color";
proc sgplot data=fruit_sales dattrmap=attrmapfruit;
vbar Fruit / response=Sales group=Fruit attrid=fruit;
run;
title;
title "Fruit Sales V02 - no formats";
proc sgplot data=fruit_sales;
vbar Fruit / response=Sales group=Fruit ;
run;
title;
ods rtf close;