首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAS绘图SGPLOT

SAS绘图SGPLOT
EN

Stack Overflow用户
提问于 2018-03-30 18:03:44
回答 2查看 407关注 0票数 0

我有3列A,B,C。我试着做一个覆盖图,它显示了B的一行和C的一行(A是x轴)。但是,当我使用下面的代码时,输出看起来非常难看。有什么更好的方法去做呢?谢谢。

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-30 18:34:09

在SGPLOT中,绘图语句(默认情况下)绘制在相同的绘图‘画布’上,从而覆盖。第一个语句是先画出来的,这样你就可以产生任何想要的“z效应”来进行叠加。

绘制djia数据的示例。

代码语言:javascript
复制
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展示了如何在低和高之间划分(填充)区域。

例如,数据

代码语言:javascript
复制
* 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
;
票数 1
EN

Stack Overflow用户

发布于 2018-03-30 18:30:14

通常,在SGxxx过程中,只需添加更多语句就可以在图形上显示更多内容。例如,您可能希望在同一张图上显示年龄、体重和年龄*高度的回归线。

代码语言:javascript
复制
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;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49579209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档