Open kemistep opened 4 years ago
坚持每天写 1、2 页,慢慢积累。虽然,某一天当我熟练掌握 SAS,或许就是我不再需要使用 SAS 的时候。。。
复制代码
————————————————————————————————————————————————————————————
从图形可以看到,设置 backgroundcolor=lightblue 后,背景颜色变成淡蓝色了;设置 border=true 和 borderattrs=(color=pink thickness=3) 后,边框变成粉红色并且加粗了;设置 designwidth=400px 和 designheight=400px 后,图表大小改变并且变成正方形了;设置 pad=(bottom=50 right=50) 后,下边和右边空白区域变大了。 proc template; define statgraph scatterplot; begingraph / backgroundcolor=lightblue border=true borderattrs=(color=pink thickness=3) designwidth=400px designheight=400px pad=(bottom=50 right=50); entrytitle "Weight and Age by Sex"; layout overlay; scatterplot x=age y=weight / group=sex name="weight"; discretelegend "weight"; endlayout; endgraph; end; run; ods html; proc sgrender data=sashelp.class template=scatterplot; run;
对比上下 2 个图形,可以看到设置 aspecratio=0.7 后,绘图区域形状变了;设置 cycleattrs=true 后,图形颜色从 2 种颜色变成 4 种颜色。 proc template; define statgraph seriesplot; begingraph / designwidth=360px designheight=260px; entrytitle "Tech Stock Trends"; layout overlay / yaxisopts=(label='price') aspectratio=0.7 cycleattrs=true; seriesplot x=date y=close / group=stock name="stocks" lineattrs=(thickness=3); seriesplot x=date y=high / group=stock lineattrs=(thickness=3); discretelegend "stocks"; endlayout; endgraph; end; run; proc sgrender data=sashelp.stocks template=seriesplot; where date > "31dec1999"d and stock^='IBM'; run;
对比上下 2 个图形,可以看到设置 opaque=true 和 backgroundcolor=lightyellow 后,布局背景颜色变成淡黄色;设置 border=true 和 borderattrs=(color=blue pattern=dash thickness=2) 后,布局区域显示边框,并且边框属性为蓝色、破折线、加粗;设置 pad=(top=50) 后,布局上方和图表距离变大了;设置 wallcolor=lightgray 和 walldisplay=(fill) 后,绘图区域背景颜色变成淡灰色。 proc template; define statgraph seriesplot; begingraph / designwidth=360px designheight=260px; entrytitle "Tech Stock Trends"; layout overlay / yaxisopts=(label='price') aspectratio=auto backgroundcolor=lightyellow border=true borderattrs=(color=blue pattern=dash thickness=2) cycleattrs=true opaque=true pad=(top=50) wallcolor=lightgray walldisplay=(fill); seriesplot x=date y=close / group=stock name="stocks" lineattrs=(thickness=3); seriesplot x=date y=high / group=stock lineattrs=(thickness=3); discretelegend "stocks"; endlayout; endgraph; end; run; proc sgrender data=sashelp.stocks template=seriesplot; where date > "31dec1999"d and stock^='IBM'; run;
从图形对比左右 Y 轴,可以看到设置 display=(label tickvalues) 后,轴线和标记不显示了;设置 griddisplay=on 后,显示刻度线;设置 label="population (%)" 和 labelattrs=(color=blue weight=bold) 后,标签属性变成蓝色加粗;设置 xaxisopts=(display=none) 后,X 轴不显示了。 proc template; define statgraph y2axis; begingraph / designwidth=360px designheight=360px; layout overlay / walldisplay=none yaxisopts=(display=(label tickvalues) griddisplay=on label="population (%)" labelattrs=(color=blue weight=bold) name="Y") xaxisopts=(display=none); histogram height / scale=count yaxis=y2 name="height"; histogram height / scale=proportion yaxis=y; densityplot height / normal(); discretelegend "height"; endlayout; endgraph; end; run; proc sgrender data=sashelp.class template=y2axis; run;
https://bbs.pinggu.org/thread-2177218-1-1.html
坚持每天写 1、2 页,慢慢积累。虽然,某一天当我熟练掌握 SAS,或许就是我不再需要使用 SAS 的时候。。。
复制代码
复制代码
————————————————————————————————————————————————————————————
从图形可以看到,设置 backgroundcolor=lightblue 后,背景颜色变成淡蓝色了;设置 border=true 和 borderattrs=(color=pink thickness=3) 后,边框变成粉红色并且加粗了;设置 designwidth=400px 和 designheight=400px 后,图表大小改变并且变成正方形了;设置 pad=(bottom=50 right=50) 后,下边和右边空白区域变大了。
proc template;
define statgraph scatterplot;
begingraph / backgroundcolor=lightblue
border=true
borderattrs=(color=pink thickness=3)
designwidth=400px
designheight=400px
pad=(bottom=50 right=50);
entrytitle "Weight and Age by Sex";
layout overlay;
scatterplot x=age y=weight /
group=sex name="weight";
discretelegend "weight";
endlayout;
endgraph;
end;
run;
ods html;
proc sgrender data=sashelp.class template=scatterplot;
run;
————————————————————————————————————————————————————————————
对比上下 2 个图形,可以看到设置 aspecratio=0.7 后,绘图区域形状变了;设置 cycleattrs=true 后,图形颜色从 2 种颜色变成 4 种颜色。
proc template;
define statgraph seriesplot;
begingraph / designwidth=360px designheight=260px;
entrytitle "Tech Stock Trends";
layout overlay / yaxisopts=(label='price')
aspectratio=0.7
cycleattrs=true;
seriesplot x=date y=close / group=stock name="stocks"
lineattrs=(thickness=3);
seriesplot x=date y=high / group=stock
lineattrs=(thickness=3);
discretelegend "stocks";
endlayout;
endgraph;
end;
run;
proc sgrender data=sashelp.stocks template=seriesplot;
where date > "31dec1999"d and stock^='IBM';
run;
————————————————————————————————————————————————————————————
对比上下 2 个图形,可以看到设置 opaque=true 和 backgroundcolor=lightyellow 后,布局背景颜色变成淡黄色;设置 border=true 和 borderattrs=(color=blue pattern=dash thickness=2) 后,布局区域显示边框,并且边框属性为蓝色、破折线、加粗;设置 pad=(top=50) 后,布局上方和图表距离变大了;设置 wallcolor=lightgray 和 walldisplay=(fill) 后,绘图区域背景颜色变成淡灰色。
proc template;
define statgraph seriesplot;
begingraph / designwidth=360px designheight=260px;
entrytitle "Tech Stock Trends";
layout overlay / yaxisopts=(label='price')
aspectratio=auto
backgroundcolor=lightyellow
border=true
borderattrs=(color=blue pattern=dash thickness=2)
cycleattrs=true
opaque=true
pad=(top=50)
wallcolor=lightgray
walldisplay=(fill);
seriesplot x=date y=close / group=stock name="stocks"
lineattrs=(thickness=3);
seriesplot x=date y=high / group=stock
lineattrs=(thickness=3);
discretelegend "stocks";
endlayout;
endgraph;
end;
run;
proc sgrender data=sashelp.stocks template=seriesplot;
where date > "31dec1999"d and stock^='IBM';
run;
————————————————————————————————————————————————————————————
从图形对比左右 Y 轴,可以看到设置 display=(label tickvalues) 后,轴线和标记不显示了;设置 griddisplay=on 后,显示刻度线;设置 label="population (%)" 和 labelattrs=(color=blue weight=bold) 后,标签属性变成蓝色加粗;设置 xaxisopts=(display=none) 后,X 轴不显示了。
proc template;
define statgraph y2axis;
begingraph / designwidth=360px designheight=360px;
layout overlay / walldisplay=none
yaxisopts=(display=(label tickvalues)
griddisplay=on
label="population (%)"
labelattrs=(color=blue weight=bold)
name="Y")
xaxisopts=(display=none);
histogram height / scale=count yaxis=y2 name="height";
histogram height / scale=proportion yaxis=y;
densityplot height / normal();
discretelegend "height";
endlayout;
endgraph;
end;
run;
proc sgrender data=sashelp.class template=y2axis;
run;
https://bbs.pinggu.org/thread-2177218-1-1.html