如何更改sas绘图x轴顺序

如何更改sas绘图x轴顺序,sas,Sas,我的数据集如下所示: x y 16:00 1 17:00 2 18:00 2 19:00 3 20:00 4 21:00 5 22:00 6 23:00 1 24:00 1 01:00 2 02:00 3 03:00 1 04:00 7 ... 我想用下面的代码绘制x和y之间的关系。我想要我的x轴从16:00开始到04:00结束。但是,使用下面的代

我的数据集如下所示:

x          y
16:00      1
17:00      2
18:00      2
19:00      3
20:00      4
21:00      5
22:00      6
23:00      1
24:00      1
01:00      2
02:00      3
03:00      1
04:00      7
...
我想用下面的代码绘制x和y之间的关系。我想要我的x轴从16:00开始到04:00结束。但是,使用下面的代码,x轴从00:00开始,在16:00结束。有人能教我如何调整代码吗。(我不想像下面那样一个接一个地键入顺序=(“16:00”…“04:00”)


所以问题是数字X轴值不能乱序,而SAS中的时间是凌晨1点<晚上11点。所以你不能24小时不停地工作,也就是说

解决方法是将时间值设为日期时间。也就是说,在其中添加一个日期组件。然后只显示时间部分

data have;
informat x time5. y best.;
format x time5.;
input x y;
datalines;
16:00      1
17:00      2
18:00      2
19:00      3
20:00      4
21:00      5
22:00      6
23:00      1
24:00      1
01:00      2
02:00      3
03:00      1
04:00      7
;
run;

data have;
retain day 0;
set have;
format x_new datetime.;

/*Count Days*/
if x = "24:00"t then 
    day = day + 1;

x_new = dhms(day,hour(x),minute(x),second(x));
run;

proc sgplot data=have;
series x=x_new y=y;
xaxis valuesformat=tod5.;
run;
在这里,我寻找24小时标记来增加日计数。然后创建一个新变量来保存日+时间

打印时,告诉SAS使用仅显示时间部分的
TODw.d
格式

data have;
informat x time5. y best.;
format x time5.;
input x y;
datalines;
16:00      1
17:00      2
18:00      2
19:00      3
20:00      4
21:00      5
22:00      6
23:00      1
24:00      1
01:00      2
02:00      3
03:00      1
04:00      7
;
run;

data have;
retain day 0;
set have;
format x_new datetime.;

/*Count Days*/
if x = "24:00"t then 
    day = day + 1;

x_new = dhms(day,hour(x),minute(x),second(x));
run;

proc sgplot data=have;
series x=x_new y=y;
xaxis valuesformat=tod5.;
run;

这是我得到的SGPLOT语句

是XAXIS而不是AXIS。