ZeekDSA
ZeekDSA

Reputation: 86

plotting a vertical line exactly in the middle and at specific value of X in SAS

For the below x, y data, how to plot vertical line exactly in the middle of the plot (please note, X should not be ordered and plot be as it is).

Also how to plot a vertical line at x=5 (a distance on X from X=0) when X in the data below is taken as 0, 1, 2, 3.. and so forth.

data sample;
infile cards truncover expandtabs;
input X Y;
cards;
29 21
18 23
28 24
16 26
3 27
18 29
2 33
3 37
26 39
2 42
25 47
9 54
13 57
17 58
29 60
5 63
23 66
4 69
3 72
17 73
7 73
12 72
8 69
20 66
12 63
8 60
28 58
3 57
18 54
11 47
21 42
8 39
1 37
16 29
3 27
17 22
3 19
6 17
19 14
18 10
;
run;

I tried:

proc sort data=sample ;
by x;
run;

proc sgplot data=sample;
needle x=x y=y;
run;

data Trapezoidal;
    set sample end=last;
    dif_x=dif(x); 
    mean_y=mean(lag(y),y);
    integral + (dif_x*mean_y);
    if last then putlog 'area under curve is ' integral;
run;

Upvotes: 0

Views: 227

Answers (1)

Joe
Joe

Reputation: 63424

Vertical lines are plotted with refline. Determine what the 'middle' is however you wish (using proc means or proc sql or similar), get it into a variable in your dataset or a macro variable, and use refline in proc sgplot to produce the line.

Same applies for your specific-values-of-x (except you don't actually need to do anything there to produce the value to plot at). Add refline x=5; or similar to your plots to get them.

You could also use band plots if you're trying to highlight certain areas.

Upvotes: 1

Related Questions