2014-10-08 28 views
0

我試圖在SAS Enterprise指南中創建一個圖表。我正在繪製的數據如下:使用PROC GPLOT創建圖表並強制排序時間

col1 col2 col3 
1  12:00 20 
2  13:00 30 
3  14:00 15 
.  .  . 
.  .  . 
25 24:00 90 
26 01:00 25 
27 02:00 45 
.  .  . 
.  .  . 
36 11:00 35 

我需要在水平軸上的col2和垂直軸上的col3。 col1是col2的參考(時間值)。 問題是排序col2。如果有一種方法可以強制col2排序,我認爲它會起作用。 這是我有

SYMBOL1 
    INTERPOL=JOIN 
    HEIGHT=10pt 
    VALUE=NONE 
    LINE=1 
    WIDTH=2 
    CV = _STYLE_ 
; 
SYMBOL2 
    INTERPOL=JOIN 
    HEIGHT=10pt 
    VALUE=NONE 
    LINE=1 
    WIDTH=2 

    CV = _STYLE_ 
; 
Legend1 
    FRAME; 
Axis1 
    STYLE=1 
    WIDTH=1 
    MINOR=NONE 
    ORDER=0 TO 200 BY 10; 
Axis2 
    STYLE=1 
    WIDTH=1 
    ORDER=0 TO 36 BY 1 
    MINOR= 
    (NUMBER=1 
    ); 
TITLE; 
TITLE1 "test_graph"; 
FOOTNOTE; 
PROC GPLOT DATA = input_data; 
PLOT col2 * col3 /
    VAXIS=AXIS1 
    HAXIS=AXIS2 
FRAME LHREF=34 
CHREF=BLACK 
HREF=0 TO 36 BY 1 
LEGEND=LEGEND1; 
RUN; QUIT; 
除此之外,我嘗試添加下面的語句來強制排序

,但它不工作。

order=(12:00,13:00,14:00,......23:00,0:00,1:00,2:00,....11:00) 

請指教。

謝謝

+0

標題不應該全部大寫。 – crashmstr 2014-10-08 14:12:37

+0

將照顧到這一點。謝謝 – learnlearn10 2014-10-08 14:34:14

+2

通過添加一天來使變量成爲日期時間,但將其格式設置爲僅顯示時間。這應該得到你想要的訂單。 – Reeza 2014-10-08 14:40:12

回答

0

使用下面的代碼,它工作正常。

proc sgplot data=input_data ; 
    xaxis values=("12:00" "13:00" "14:00"......"23:00" "0:00" "1:00" "2:00"...."11:00") 
    label="time"; 
     yaxis integer values=(0 TO 200 BY 10) label="numb"; 
     series x=col2 y=col3 ; 
    run; 
+1

完成....謝謝 – learnlearn10 2014-10-08 18:46:57