[R] Plotting a broken line?

Petr Pikal petr.pikal at precheza.cz
Wed Mar 7 18:43:33 CET 2007


Hi

you shall probably cooperate with segments, so you need to extract 
start and end points for your lines e.g.

> x<-c(1:6, 10:15,20:25)
> y<-rep(c(1,2,3), each=6)
> plot(x,y, type="l")
> plot(x,y)
> 

segments(sapply(split(x,y), min),1:3, sapply(split(x,y),max),1:3)

Regards
Petr



On 7 Mar 2007 at 10:21, Aldi Kraja wrote:

Date sent:      	Wed, 07 Mar 2007 10:21:06 -0600
From:           	Aldi Kraja <aldi at wustl.edu>
To:             	r-help at stat.math.ethz.ch
Subject:        	[R] Plotting a broken line?
Send reply to:  	aldi at wustl.edu
	<mailto:r-help-request at stat.math.ethz.ch?subject=unsubscribe>
	<mailto:r-help-request at stat.math.ethz.ch?subject=subscribe>

> Hi,
> 
> Is there a smart way in the R graphs to create a line that is broken
> in intervals based on the indicator given below. following is a small
> test graph
> 
> Location,indicator,otherinfo
> 1.2,1,2.2
> 2.5,1,2.5
> 3.7,1,2.3
> 20.1,2,4.3
> 
> 22.5,2,5.2
> 25.0,2,3.4
> 27.3,2,2.2
> 
> 35.1,3,3.4
> 37.0,3,7.2
> 38.0,3,6.1
> 40.1,3,5.4
> 52.9,3,3.3
> 
> Right now in the plot the line is continuous, but I would like to have
> it broken based on the indicator. If the line of the plot reaches the
> last observation of indicator=1 then the line needs to stop; the next
> line will start at location 22.5 and continue up top 27.3; the next
> line goes from 35.1 up to 52.9.
> 
>  > x<-read.table(file='c:\\aldi\\testgraph.csv',sep=',',header=T) > x
>    Location indicator otherinfo
> 1       1.2         1       2.2
> 2       2.5         1       2.5
> 3       3.7         1       2.3
> 4      20.1         2       4.3
> 5      22.5         2       5.2
> 6      25.0         2       3.4
> 7      27.3         2       2.2
> 8      35.1         3       3.4
> 9      37.0         3       7.2
> 10     38.0         3       6.1
> 11     40.1         3       5.4
> 12     52.9         3       3.3
> 
>  > 
> plot(x$Location,x$indicator,type='l',xlim=c(0,max(x$Location)),ylim=c(
> 0,max(x$indicator,x$otherinfo)))
>  > points(x$Location,x$otherinfo)
> 
> TIA,
> Aldi
> 
> --
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html and provide commented,
> minimal, self-contained, reproducible code.

Petr Pikal
petr.pikal at precheza.cz



More information about the R-help mailing list