2016-04-25 503 views
1

我在数据集中的值是以十亿为单位,当我绘制数据时,Y轴显示2.0E7,2.0E8等的间隔而不是实际值。我想把比例尺放在“百万”中,而不是以指数级显示。怎么做?SAS SGPLOT - 使用Y轴缩放间隔

proc sgplot data=t_analytics ; 
series x=year y=CC/markers datalabel; 
series x=year y=DC/markers datalabel y2axis; 
series x=year y=NC/markers datalabel y2axis; 
yaxis interval=auto grid logbase=10 ; 
xaxis display=(nolabel) ; 
run; 

CC,DC,NC值以百万为单位。

预先感谢

回答

2

绘制之前除以1E6和调整轴标签

data to_plot; 
set t_analytics; 
CC = CC/1e6; 
DC = DC/1e6; 
NC = NC/1e6; 
run; 

proc sgplot data=to_plot; 
series x=year y=CC/markers datalabel; 
series x=year y=DC/markers datalabel y2axis; 
series x=year y=NC/markers datalabel y2axis; 
yaxis interval=auto grid logbase=10 label="in Millions" logstyle=logexpand; 
xaxis display=(nolabel) ; 
run; 

编辑:加入logstyle=logexpand以确保值被印刷,而不是指数。应该是默认的。

+0

这工作得很好。谢谢 –

1

你也可以把它放在一个格式中。图片格式非常好。

data test; 
    do year=1995 to 2015; 
    cc = (year-1994)*1000000; 
    output; 
    end; 
run; 

proc format; 
    picture millionsF 
    0-high = '00' (mult=0.000001); 
quit; 


proc sgplot data=test; 
series x=year y=CC/markers datalabel; 
format CC millionsf.; 
xaxis display=(nolabel) ; 
yaxis interval=auto grid logbase=10 label='In Millions'; 
run; 

当然,你可以把in millions在图片格式,如果你愿意,或者只是在轴标签。