使用SAS PROC TEMPLATE为箱线图添加均值中位数图例(蓝菱形/红直线)
使用SAS PROC TEMPLATE配置箱线图图例
需求:通过SAS的PROC TEMPLATE过程绘制箱线图,要求用蓝色菱形代表均值,红色粗直线代表中位数。
实现代码
proc template; define statgraph test1; dynamic _mean _assay _calconc _assay2 _mean2 _median; begingraph; title '箱线图'; layout lattice / rowdatarange=data columndatarange=data rowgutter=10 columngutter=10; layout overlay / xaxisopts=( type=discrete labelattrs=(size=11 ) tickvalueattrs=(size=10 ) discreteopts=( tickvaluefitpolicy=splitrotate)) yaxisopts=( type=log label=('对数浓度') labelattrs=GraphLabelText(size=11 ) tickvalueattrs=GraphDataText( size=10 ) logopts=( base=10 viewmin=1.0 viewmax=10000.0 tickvaluepriority=TRUE tickvaluelist=(1.0 10.0 100.0 1000.0 10000.0))); boxplot x=_ASSAY y=_MEAN / name='box' displaystats=(n mean median min max) datalabelattrs=GraphLabelText(size=12 ) groupdisplay=Overlay medianattrs=(color=CXFF0000 thickness=3) meanattrs=GraphDataDefault(color=CX0000FF symbol=DIAMOND size=10 weight=bold); innermargin / align=bottom; endinnermargin; endlayout; endlayout; endgraph; end; run; proc sgrender data=final template=test1; dynamic _mean="MEAN" _assay="ASSAY" _calconc="CALCONC" _assay2="ASSAY" _mean2="MEAN" _median="MEDIAN"; format Mean comma10.2; run;
关键配置说明
medianattrs=(color=CXFF0000 thickness=3):将中位数线条设置为红色(十六进制色值CXFF0000),线条粗细设为3meanattrs=GraphDataDefault(color=CX0000FF symbol=DIAMOND size=10 weight=bold):将均值标记设置为蓝色(十六进制色值CX0000FF),形状为菱形(DIAMOND),标记大小10,加粗显示displaystats=(n mean median min max):在箱线图上显示样本量、均值、中位数、最小值、最大值这几项统计量- 坐标轴配置:X轴设为离散型,Y轴采用对数刻度,指定了刻度范围和固定显示的刻度值
内容的提问来源于stack exchange,提问作者DB5
相关产品推荐
相关产品推荐

