【问题标题】:Create graph using PROC GPLOT with forced sorting for time使用 PROC GPLOT 创建图形并强制时间排序
【发布时间】:2014-10-08 14:11:21
【问题描述】:

我正在尝试在 SAS Enterprise 指南中创建图表。我正在绘制的数据如下:

col1  col2    col3
1     12:00    20
2     13:00    30
3     14:00    15
.       .      .
.       .      .
25    24:00    90
26    01:00    25
27    02:00    45
.       .      .
.       .      .
36    11:00    35

我需要水平轴上的 col2 和垂直轴上的 col3。 col1 是 col2(时间值)的参考。 问题是排序col2。如果有一种方法可以强制对 col2 进行排序,我认为它会起作用。 这就是我所拥有的

SYMBOL1
    INTERPOL=JOIN
    HEIGHT=10pt
    VALUE=NONE
    LINE=1
    WIDTH=2
    CV = _STYLE_
;
SYMBOL2
    INTERPOL=JOIN
    HEIGHT=10pt
    VALUE=NONE
    LINE=1
    WIDTH=2

    CV = _STYLE_
;
Legend1
    FRAME;
Axis1
    STYLE=1
    WIDTH=1
    MINOR=NONE
    ORDER=0 TO 200 BY 10;
Axis2
    STYLE=1
    WIDTH=1
    ORDER=0 TO 36 BY 1
    MINOR= 
    (NUMBER=1
    );
TITLE;
TITLE1 "test_graph";
FOOTNOTE;
PROC GPLOT DATA = input_data;
PLOT col2 * col3   /
    VAXIS=AXIS1
    HAXIS=AXIS2
FRAME   LHREF=34
CHREF=BLACK
HREF=0 TO 36 BY 1
LEGEND=LEGEND1;
RUN; QUIT;

除此之外,我尝试添加以下语句来强制排序,但它不起作用。

order=(12:00,13:00,14:00,......23:00,0:00,1:00,2:00,....11:00)

请指教。

谢谢

【问题讨论】:

  • 标题不应全部大写。
  • 会处理这个问题。谢谢
  • 通过添加一天使您的变量成为日期时间,但将其格式化为仅显示时间。这应该得到你想要的顺序。
  • 谢谢里斯!我已经尝试过了,它有效。但我一直在 PROC GPLOT 中寻找更好的解决方案来做到这一点。
  • 您是否尝试过价值观声明?此外,SGPLOT 现在通常更擅长绘制图表。

标签: sas


【解决方案1】:

使用下面的代码,它工作正常。

proc sgplot data=input_data ;
    xaxis values=("12:00" "13:00" "14:00"......"23:00" "0:00" "1:00" "2:00"...."11:00")
    label="time";
      yaxis integer values=(0 TO 200 BY 10) label="numb";
      series x=col2  y=col3 ;
    run;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 2016-12-03
    • 1970-01-01
    相关资源
    最近更新 更多