您的代码中没有任何内容表明图表应该有颜色。如果您在 PROC SGPLOT 中指定颜色,它们将被尊重并覆盖样式。您选择的 STYLE 是 Journal,它是为印刷期刊(亿万年前)设计的,不包括设计颜色。
这显示了差异,其中第一个图表带有颜色,而第二个图表没有颜色,并采用 Journal 的默认样式。
正如另一位用户指出的那样,您可以选择不同的样式并获得自动颜色,但它们是模板颜色,而不是您选择的颜色。在 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;