请选择 进入手机版 | 继续访问电脑版
楼主: Gavin12
8989 2

请帮忙看下SAS画图中横坐标轴的问题 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

初中生

76%

还不是VIP/贵宾

-

威望
0
论坛币
9 个
通用积分
0.0085
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
65 点
帖子
8
精华
0
在线时间
23 小时
注册时间
2015-8-28
最后登录
2017-2-28

Gavin12 发表于 2015-8-28 14:16:50 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
Hi 各位大侠帮忙看下,尝试了不少方法,还是没解决,请帮忙看下,谢谢!
问题:我需要使用SAS生成一个180天数据的图表,问题是180天由于天数太多造成横坐标很拥挤,导致日期太密麻,不方便观看,因此我想变成每隔一天显示日期,如,20Aug2015,22Aug2015,24Aug2015........,但是图表中的数据是每天都要显示,excel很容易实现,但SAS遇到这个问题。
代码如下:分两部分,大家看红色部分就可以了,第一部分是我生成日期,第二部分是画图:
Data _Null_;
                                                Call Symput('sDate',put((today()-179)*86400,datetime13.));
                                                Call Symput('eDate',put((today()+1)*86400,Datetime13.));
                                                Call Symput('mUnit',put(DatDif(today()-179,today()+1,'act/act')/2,10.2));       
                                        Run;


/*ods listing close;*/
/*ods html path="C:\query run data\2015\Aug\0828"*/
/*      body="p1_spc_test.html" */
/*      gpath="&rpath\image"(url='image\')*/
/*      style=listing*/
/*      newfile=proc;*/

ods html style=listing path="C:\query run data\2015\Aug\0827" (url=none)

         body="P1 yld chart.HTML" (title="TREND");


goptions RESET=ALL vsize=15cm hsize=30cm device=gif graphrc interpol=join gsfmode=replace;
/*goptions reset=all device=gif graphrc interpol=join gsfmode=replace;*/

symbol1 c=DEFAULT w=1.3 i=join  ci=magenta  v=dot cv=green  h=0.6 ;
symbol2 c=DEFAULT i=none  v=dot cv=yellow  h=0.6; %** GLD CL dot **;
symbol3 c=DEFAULT i=none  v=dot cv=red  h=0.6; %** GLD CL dot **;
symbol4 c=DEFAULT i=join  v=none l=20  ci=blue ;%** Action dot**;
symbol5 c=DEFAULT i=join  v=none l=20  ci=red ;%** GLD WL dot**;
symbol6 c=DEFAULT i=join  v=none l=20  ci=red ; %** GLD CL dot **;

axis1 color=black offset=(1.0,0) value=(f=arial h=0.5 a=270) label=(c=black f="Arial"  h=1.0 'Sputter Date')  width=1.8
order="&sDate"dt to "&eDate"dt by "&mUnit"D;
axis2 color=blue offset=(1.0,1.0) label=(c=blue  a=90 f=arial h=1.1 "Yield") value=(f=arial h=1.0)  width=1.8
order=(0 to 80 by 10 80 to 100 by 2) minor=none;
axis3 color=blue offset=(1.0,1.0) label=(c=blue  a=90 f=arial h=1.1 "Quantity(SS>=1000pcs)") value=(f=arial h=1.0)  width=1.8 minor=none;
legend1;
legend2 label=none   

value =(t=1 'P1 Yield' t=2 "Yellow" t=3 "Red" t=4 "LWL" t=5 "LCL" t=6 "+++" );
title1  c=blue h=1.3 " P1 Yiled Summary" ;
footnote j=r f=times  c=black h=.9 "updated &SYSDATE9. &SYSTIME.";
pattern1 v=e;

proc gbarline data=data;
format date date5.;
by family_name;
  bar date /sumvar= glddisks
            discrete raxis=axis3   maxis=axis1 ;
  plot / sumvar= yld raxis=axis2 legend=legend2;
      plot / sumvar= sig3 raxis=axis2 ;
            plot / sumvar= sig4 raxis=axis2 ;
            plot / sumvar= lwl raxis=axis2 ;
plot / sumvar= lcl raxis=axis2 ;

run;
quit;
ods html close;



生成的图片

生成的图片


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:横坐标 坐标轴 datetime goptions Discrete 坐标轴

不用这么复杂,直接指定横坐标轴的步长就行了
  1. data test;
  2. input date:yymmdd10. number;
  3. format date yymmdd10.;
  4. cards;
  5. 2014-02-01 67
  6. 2014-02-02 87
  7. 2014-02-03 76
  8. 2014-02-04 34
  9. 2014-02-05 45
  10. 2014-02-06 56
  11. 2014-02-07 45
  12. 2014-02-08 21
  13. ;
  14. run;

  15. proc plot data=test;
  16. plot number*date/haxis='01feb14'd to '08feb14'd by 2;
  17. run;
复制代码

使用道具

Gavin12 发表于 2015-8-31 13:38:56 |显示全部楼层 |坛友微信交流群
yangdelong1988 发表于 2015-8-28 21:42
不用这么复杂,直接指定横坐标轴的步长就行了
谢谢你的回复,指定横坐标是不行的,我的横坐标是随时间推移自然变化的,你看我代码的第一段就可以发现了,我是取180天的数据从当天往前退到180天的数据,所以每天增加当天数据,再把最开始的一天去掉,总天数180天。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-29 19:02