## SGPLOT series interval

Solved
Frequent Contributor
Posts: 89

# SGPLOT series interval

Let's say I have this code:

```proc sgplot data=have;
series x=var y=var2;
series x=var y=var3;
series x=var y=var4;
xaxis grid values = (0 to 23 by 1);
run;```

is there a way I can display each series in different intervals like:

series 1: from 0-10 only

series 2: 0-12 and 18-23 BREAK;

series 3: 12-19

?

I don't want to change the axis size

Accepted Solutions
Solution
2 weeks ago
Super User
Posts: 13,941

## Re: SGPLOT series interval

@matt23 wrote:
So there's no way to do this without playing with the data?

Not very difficult:

```data plot;
set have;
where 0 le x le 23;
if not (0 le x le 10) then var2=.;
if 12 lt x lt 18 then var3=.
if not (12 le x le 19) var4=.;
run;

proc sgplot data=plot;
series x=var y=var2 / break;
series x=var y=var3 / break;
series x=var y=var4 / break;
xaxis grid values = (0 to 23 by 1);
run;```

should do it.

Try it in Excel. See how much manipulation you do.

Some other approaches might involve adding group variables and assigning attributes to make certain groups "invisible" but that's more work I think.

All Replies
Super User
Posts: 13,941

## Re: SGPLOT series interval

the main piece would be to have y variable values as missing for the X values you don't want the series ploted. Then use the option BREAK on the plot statements. Any x value with a missing y would the "break" the series connection.

But the DATA has to support this, not just the plot statements.

Frequent Contributor
Posts: 89

## Re: SGPLOT series interval

So there's no way to do this without playing with the data?
Solution
2 weeks ago
Super User
Posts: 13,941

## Re: SGPLOT series interval

@matt23 wrote:
So there's no way to do this without playing with the data?

Not very difficult:

```data plot;
set have;
where 0 le x le 23;
if not (0 le x le 10) then var2=.;
if 12 lt x lt 18 then var3=.
if not (12 le x le 19) var4=.;
run;

proc sgplot data=plot;
series x=var y=var2 / break;
series x=var y=var3 / break;
series x=var y=var4 / break;
xaxis grid values = (0 to 23 by 1);
run;```

should do it.

Try it in Excel. See how much manipulation you do.

Some other approaches might involve adding group variables and assigning attributes to make certain groups "invisible" but that's more work I think.

☑ This topic is solved.