266:SAS畫圖--GTL(三)_軸_第二篇

關(guān)于SAS畫圖中軸的第一篇請參考:

138:SAS畫圖--GTL(三)_軸

先講幾個通識點:

①:紅框這種網(wǎng)格線叫做grid

②:藍(lán)框這一個個刻度叫做tick,那tick左邊的數(shù)字就叫做tickvalue了。

③:橘黃框就叫做label了。

image.png

所以如果你想修改label的屬性,就得在GTL里面搜索包含“l(fā)abel”這幾個關(guān)鍵詞的選項,比如LABELATTRS,LABELPOSITION;如果你想修改tick的屬性,就得在GTL里面搜索包含“tick”這幾個關(guān)鍵詞的選項,比如TICKSTYLE,TICKVALUEATTRS。

今天繼續(xù)介紹軸的幾個屬性:

1)刻度顯示,如何達(dá)到圖中藍(lán)框的效果,小刻度不顯示值,大刻度顯示值,這個屬于linearopts的屬性。也就是這段程序

linearopts=(tickvaluepriority=true MINORTICKS=TRUE tickvaluesequence=(start=0 end=50 increment=10))

ods listing close;
ods rtf file = "XXXXX\commnplot.rtf" ;
proc template;
define statgraph scatterplot;
  begingraph;
    entrytitle 'Mileage by Horsepower';
    layout overlay / xaxisopts=(griddisplay=on
    linearopts=(tickvaluelist=(150 200 250 300 350)))
    yaxisopts=(griddisplay=on   
      linearopts=(tickvaluepriority=true MINORTICKS=TRUE 
      tickvaluesequence=(start=0 end=50 increment=10))
    );
    scatterplot x=horsepower y=mpg_city;
    endlayout;
  endgraph;
end;
run;
/*ods listing style=htmlblue;*/
proc sgrender template=scatterplot data=cars;
run;

所以能實現(xiàn)圖中的效果,就是通過這個
MINORTICKS=TRUE,如果我改成FALSE,可以看到刻度與刻度之間的小刻度(minor tick)消失了。如果你的坐標(biāo)刻度值是3,5,11,23這樣不規(guī)律的值,
MINORTICKS=TRUE就不起作用了。

image.png

2)OFFSETMAX:作用是在軸的最大末端保留一個區(qū)域。同時在這個區(qū)域不顯示任何刻度。取值是0-1,我們?nèi)∫粋€offsetmax=0.3看看,可以看到預(yù)留了一個挺大的空白區(qū)域。
我程序中不同選項之間空了很多行,就是提醒大家不同選項之間是獨立的,有的人可能會把一些子選項加到錯誤的母選項中,比如說把label="see me see me"加到linearopts里面。

proc template;
define statgraph scatterplot;
  begingraph;
    entrytitle 'Mileage by Horsepower';
    layout overlay / 
    xaxisopts=(griddisplay=on
    linearopts=(tickvaluelist=(150 200 250 300 350))
    )
    yaxisopts=(griddisplay=on   
      linearopts=(tickvaluepriority=true MINORTICKS=false 
      tickvaluesequence=(start=0 end=60 increment=10))
      label="see me see me"
      offsetmax=0.3
    );
    scatterplot x=horsepower y=mpg_city;
    endlayout;
  endgraph;
end;
run;
image.png

3)OFFSETMIN:跟OFFSETMAX相反的就是OFFSETMIN了,我們設(shè)置offsetmin=0.3看看

image.png

注意,我加的offsetmin=0.3和offsetmax=0.3都是在Y軸里面,也就是yaxisopts=()這里面,所以控制的是Y軸的空白區(qū)域;如果你想控制X軸的空白區(qū)域,那么加到xaxisopts=()就好了。

注意offsetmin+offsetmax不能超過1,否則不起作用

NOTE: The sum of OFFSETMIN and OFFSETMAX cannot be greater than 1.0. The defaults will be used.

4)VIEWMAX=:跟offsetmin/offsetmax長得相似,并且可能搞混的就是VIEWMAX/VIEWMIN。

VIEWMAX/VIEWMIN:指定要包含在顯示中的最大/最小數(shù)據(jù)值,比如我現(xiàn)在注釋tickvaluesequence,定義一個最大的VIEWMAX=50,

proc template;
define statgraph scatterplot;
  begingraph;
    entrytitle 'Mileage by Horsepower';
    layout overlay / 
    xaxisopts=(griddisplay=on
/*    linearopts=(tickvaluelist=(150 200 250 300 350))*/
    )
    yaxisopts=(griddisplay=on   
      linearopts=(tickvaluepriority=true MINORTICKS=false 
      /*tickvaluesequence=(start=0 end=60 increment=10)*/ viewmax=50)
      label="see me see me"
      offsetmin=0.1
    );
    scatterplot x=horsepower y=mpg_city;
    endlayout;
  endgraph;
end;
run;
image.png

看到展示的最大數(shù)值只有50,50以上的就不顯示了。
需要注意的是,如果你加上了tickvaluepriority=true(默認(rèn)選項是FALSE),擴展軸數(shù)據(jù)范圍(但不減少它),以包含由TICKVALUELIST=選項指定的最小值和最大值。如果用戶指定的最小值和最大值在數(shù)據(jù)范圍內(nèi),則此選項不起作用。
我們可以來看看區(qū)別:

linearopts=(tickvaluepriority=true MINORTICKS=false

tickvaluelist=(10 20 30 40 50 ) viewmax=50)

我的軸刻度只到50,但是我們知道數(shù)據(jù)中有60的數(shù)據(jù),然后我的tickvaluepriority選擇了true,也就是會拓展軸長度。需要注意的是,當(dāng)tickvaluepriority選擇了true時,VIEWMIN和VIEWMAX都會不起作用。

image.png

接著我改成FALSE,
TICKVALUEPRIORITY=FALSE只顯示TICKVALUELIST=選項指定的刻度值,這些值屬于由VIEWMIN=和VIEWMAX=選項設(shè)置的顯式數(shù)據(jù)范圍,或者由實際數(shù)據(jù)最小值和數(shù)據(jù)最大值設(shè)置的隱式數(shù)據(jù)范圍。
linearopts=(tickvaluepriority=false MINORTICKS=false

tickvaluelist=(10 20 30 40 50 ) viewmax=55)

image.png

改成60
linearopts=(tickvaluepriority=false MINORTICKS=false

tickvaluelist=(10 20 30 40 50 ) viewmax=60)

image.png

所以只有在tickvaluepriority=true時,VIEWMIN和VIEWMAX才會失效,tickvaluepriority=false時,這時候只看VIEWMIN和VIEWMAX或者數(shù)據(jù)實際值了。

最后我們假設(shè)沒有tickvaluepriority這個選項(默認(rèn)也是false),這時候就根據(jù)實際數(shù)據(jù)來設(shè)置VIEWMIN和VIEWMAX,

linearopts=( MINORTICKS=false

tickvaluelist=(10 20 30 40 50 ) viewmin=30 viewmax=60)

輸出如下:


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容