簡體   English   中英

SAS繪圖SGPLOT

[英]SAS plot SGPLOT

我有3列A,B,C。我嘗試做一個覆蓋圖,該圖顯示了B的一行和C的一行(A是x軸)。 但是,當我使用下面的代碼時,輸​​出看起來非常丑陋。 有什么更好的方法呢? 謝謝。

proc plot data=djia;
   plot A*B='*'
        A*C='o' / overlay box;
   title 'Plot of Highs and Lows';
   title2 'for the Dow Jones Industrial Average';
run;

http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a002473570.htm

在SGPLOT中,默認情況下,繪圖語句會繪圖到相同的圖形“畫布”上,從而進行覆蓋。 首先繪制第一個語句,因此您可以為疊加產生任何所需的“ z效果”。

繪制djia數據的示例。

proc sgplot data=djia;

  band x=year lower=low upper=high / fillatrrs=(color=vlig);

  series x=year y=high / markers;
  series x=year  y=low  / markers;

run;

SAS知識庫文章http://support.sas.com/kb/51/821.html展示了如何在高低之間划分(填充)區域。

數據舉例

* from http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a000075748.htm#a000075747 ;
data djia;
      input Year @7 HighDate date7. High @24 LowDate date7. Low;
      format highdate lowdate date7.;
      datalines;
1954  31DEC54  404.39  11JAN54  279.87
1955  30DEC55  488.40  17JAN55  388.20
1956  06APR56  521.05  23JAN56  462.35
1957  12JUL57  520.77  22OCT57  419.79
1958  31DEC58  583.65  25FEB58  436.89
1959  31DEC59  679.36  09FEB59  574.46
1960  05JAN60  685.47  25OCT60  568.05
1961  13DEC61  734.91  03JAN61  610.25
1962  03JAN62  726.01  26JUN62  535.76
1963  18DEC63  767.21  02JAN63  646.79
1964  18NOV64  891.71  02JAN64  768.08
1965  31DEC65  969.26  28JUN65  840.59
1966  09FEB66  995.15  07OCT66  744.32
1967  25SEP67  943.08  03JAN67  786.41
1968  03DEC68  985.21  21MAR68  825.13
1969  14MAY69  968.85  17DEC69  769.93
1970  29DEC70  842.00  06MAY70  631.16
1971  28APR71  950.82  23NOV71  797.97
1972  11DEC72 1036.27  26JAN72  889.15
1973  11JAN73 1051.70  05DEC73  788.31
1974  13MAR74  891.66  06DEC74  577.60
1975  15JUL75  881.81  02JAN75  632.04
1976  21SEP76 1014.79  02JAN76  858.71
1977  03JAN77  999.75  02NOV77  800.85
1978  08SEP78  907.74  28FEB78  742.12
1979  05OCT79  897.61  07NOV79  796.67
1980  20NOV80 1000.17  21APR80  759.13
1981  27APR81 1024.05  25SEP81  824.01
1982  27DEC82 1070.55  12AUG82  776.92
1983  29NOV83 1287.20  03JAN83 1027.04
1984  06JAN84 1286.64  24JUL84 1086.57
1985  16DEC85 1553.10  04JAN85 1184.96
1986  02DEC86 1955.57  22JAN86 1502.29
1987  25AUG87 2722.42  19OCT87 1738.74
1988  21OCT88 2183.50  20JAN88 1879.14
1989  09OCT89 2791.41  03JAN89 2144.64
1990  16JUL90 2999.75  11OCT90 2365.10
1991  31DEC91 3168.83  09JAN91 2470.30
1992  01JUN92 3413.21  09OCT92 3136.58
1993  29DEC93 3794.33  20JAN93 3241.95
1994  31JAN94 3978.36  04APR94 3593.35
;

通常,在SGxxx過程中,您只需添加更多語句即可使更多內容顯示在圖形上。 例如,您可能希望在同一張圖上顯示AGE * WEIGHT和AGE * HEIGHT的回歸線。

proc sort data=sashelp.class out=class ;
  by age;
run;
proc sgplot data=class;
  reg x=age y=weight / legendlabel='Weight';
  reg x=age y=height / legendlabel='Height' y2axis;
run;

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM