我有一個我正在使用的數據集,與下面創建的數據集非常相似。我想在同一個圖上繪製每個州的分數趨勢圖。此外,我想遮蔽發生某些事情的一部分圖形(在這種情況下,分數下降)。比方說,我預計這次活動將在2011年至2013年之間進行。我想在這些年份爲這個淺灰色的矩形畫一個陰影。我認爲我的代碼很接近,但不能完全正確地使用語法。註釋語法PROC SGRENDER SAS
任何幫助完成此將不勝感激。此外,關於清理proc模板語句的任何建議(都需要?或者我可以合併爲一個?)。謝謝。
編輯:我認爲,主要問題是annorec數據步驟的語法。
data statescores;
input state $ year score;
cards;
NC 2010 75
NC 2011 77
NC 2012 72
NC 2013 85
NC 2014 87
SC 2010 72
SC 2011 73
SC 2012 60
SC 2013 79
SC 2014 76
VA 2010 80
VA 2011 80
VA 2012 79
VA 2013 81
VA 2014 83
;
run;
data drop;
input startdate enddate;
datalines;
2011 2013
;
data annorec;
/* length function style color $8; */
retain xsys '2' ysys '1' when 'b';
set drop;
function='rectangle';
height=.4;
width=2;
x=startdate;
y=60;
display="all";
FILLCOLOR='LTGRAY';
output;
/* function='bar'; */
/* x=enddate; */
/* y=90; */
/* color='ltgray'; */
/* style='solid'; */
/* output; */
run;
proc template;
define style styles.stocks;
parent=styles.listing;
style GraphData1 from GraphData1/
ContrastColor=blue
Color=red
MarkerSymbol="CircleFilled"
Linestyle=1;
style GraphData2 from GraphData2/
ContrastColor=brown
Color=blue
MarkerSymbol="none"
Linestyle=2;
style GraphData3 from GraphData3/
ContrastColor=orange
Color=orange
MarkerSymbol="none"
Linestyle=2;
end;
run;
proc template;
define statgraph trend;
begingraph;
entrytitle "Scores for NC, SC, and VA";
discreteattrmap name="stockname"/ignorecase=true;
value 'NC'/
markerattrs=GraphData1(color=red symbol=circlefilled)
lineattrs=GraphData1(color=red pattern=solid);
value 'SC'/
markerattrs=GraphData2(color=orange)
lineattrs=GraphData2(color=green pattern=dot);
value 'VA'/
markerattrs=GraphData3(color=blue)
lineattrs=GraphData3(color=blue pattern=dot);
enddiscreteattrmap;
discreteattrvar attrvar=stockmarkers var=stock
attrmap="stockname";
layout overlay;
seriesplot x=year y=score/
group=state
display=(markers)
name="scores";
discretelegend "scores"/title="State Scores";
endlayout;
endgraph;
end;
run;
/* Plot the score trends */
ods pdf file="/sasdata/username/testgraph.pdf";
ods pdf style=styles.stocks;
proc sgrender data=statescores template=trend sganno=annorec;
run;
quit;
ods pdf close;
您運行的是哪個SAS版本? – Joe 2014-09-02 14:27:05
服務器上的SAS Enterprise Guide 6.1。 – pyll 2014-09-02 15:14:43
這不是你的SAS版本;但它很可能是9.4,這聽起來是對的嗎? – Joe 2014-09-02 15:15:10