我有一个如下数据集:
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")。
PROC SGPLOT DATA = data;
SERIES X = x Y = y;
axis order=("16:00:00"t to "03:00:00"t by hour);
TITLE 'Plot';
RUN;
答案 0 :(得分:1)
所以问题是数值X轴值不能乱序。在SAS 1am< 1<晚上11点。所以你不能昼夜不停,所以说。
解决方法是将时间值设为日期时间。也就是说,添加一天组件。然后你只显示时间部分。
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
格式。