使用SAS中的PROC GPLOT控制日志轴大小/长度

时间:2014-10-07 04:04:43

标签: plot sas scatter-plot

我正在尝试生成一个“正方形”散点图,其中两个轴都是对数(基数为10)。基本代码是:

goptions reset=all device=activex;

axis1 logbase=10 length=15cm;
axis2 logbase=10 length=15cm;
symbol color=bigb value=circle height=0.5;

proc gplot data=source uniform;
    title 'blah blah';
    plot var1*var2 / haxis=axis1 vaxis=axis2;
    where type = 'chosen';
    run;
quit;

var1包含跨越> 0到1,000,000的值。 var2包含跨越> 0到10,000,000的值。

我希望两个轴都达到10,000,000,同时保持对数刻度。我已经尝试了一切,但没有运气。我认为axis语句中的order =选项会有所帮助,

axis1 logbase=10 length=15cm order=(1 to 10000000);

但是我在日志中不断收到列表超过某个最大值的警告。

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:1)

为您提供一些建议。

1)在AXIS语句中使用LOGBASE = 10时,需要指定实际值而不是FROM和TO。像这样:

axis1 logbase=10 length=10cm order=(1 10 100 1000 10000 100000 1000000 10000000);

2)我经常遇到轴上有大数字的问题,并且会创建一个自定义格式,以便在图表上显示数字为10的幂。然后将此格式应用于PROC GPLOT中的VAR1和VAR2。

proc format;
    value power
        1 = '10^0'
        10 = '10^1'
        100 = '10^2'
        1000 = '10^3'
        10000 = '10^4'
        100000 = '10^5'
        1000000 = '10^6'
        10000000 = '10^7'
    ;
run;

3)当我尝试运行您的代码时,y轴将在图表的顶部被截止。而且我认为这是因为你选择的驱动程序。我通过以下方式调查了ACTIVEX驱动程序:

proc gdevice  c=sashelp.devices ;
  list _all_;
run;

当GDEVICE窗口出现时,在ACTIVEX前面输入“S”。这将显示有关此特定驱动程序的详细信息。根据细节,ACTIVEX的XMAX = 8.333英寸(或18.33厘米),YMAX = 6.25英寸(或13.75厘米)。这就是为什么y轴被切断的原因。考虑将AXIS语句上的LENGTH选项更改为10cm或更小。

希望这有帮助!