Hello, fellow R enthusiasts. Ok, I've been racking my brain about this small issue, and between searching the help archives and reading through the plot-related documentation, I can't figure out how to achieve my desired endpoint without some ugly, brute force coding. What I would like to do is make a plot in which only a subset of my data are plotted, but in regular intervals, such as every 5th point along the sequence. Is anyone aware of a built-in function in plot or a related graphing family that can do this, or alternatively, a simple way to extract the desired rows from my original dataframe? I want to do this because I want to plot multiple series of points with their confidence intervals (arrows), and even if I specify type="b," the output ends up looking like just a series of crowded points. For example, if you try making the plot below, you will see how crowded two lines look without error bars:> example.df<-data.frame(StartDate=(94:157), DSR1=seq(0.4, 0.8, length.out=64), DSR2=seq(0.3, 0.9, length.out=64)) > plot(example.df$StartDate, example.df$DSR1, type="b", ylim=c(0.3,0.9)) > points(example.df$StartDate, example.df$DSR2, type="b", pch=3)Any ideas for an elegant solution to my dilemma? Thanks in advance for any help. cheers, Jessi Brown Ph.D. student Program in Ecology, Evolution, and Conservation Biology University of Nevada, Reno
Try this: ix <- seq(1, nrow(example.df), 5) with(example.df[ix,], { plot(DSR1 ~ StartDate, type = "b", ylim = c(0.3, 0.9)) points(DSR2 ~ StartDate, type = "b", pch = 3) }) On Wed, Feb 20, 2008 at 6:57 PM, Jessi Brown <jessilbrown at gmail.com> wrote:> Hello, fellow R enthusiasts. > > Ok, I've been racking my brain about this small issue, and between > searching the help archives and reading through the plot-related > documentation, I can't figure out how to achieve my desired endpoint > without some ugly, brute force coding. > > What I would like to do is make a plot in which only a subset of my > data are plotted, but in regular intervals, such as every 5th point > along the sequence. Is anyone aware of a built-in function in plot or > a related graphing family that can do this, or alternatively, a simple > way to extract the desired rows from my original dataframe? I want to > do this because I want to plot multiple series of points with their > confidence intervals (arrows), and even if I specify type="b," the > output ends up looking like just a series of crowded points. > > For example, if you try making the plot below, you will see how > crowded two lines look without error bars: > > > example.df<-data.frame(StartDate=(94:157), DSR1=seq(0.4, 0.8, length.out=64), DSR2=seq(0.3, 0.9, length.out=64)) > > plot(example.df$StartDate, example.df$DSR1, type="b", ylim=c(0.3,0.9)) > > points(example.df$StartDate, example.df$DSR2, type="b", pch=3) > > Any ideas for an elegant solution to my dilemma? > > Thanks in advance for any help. > > cheers, Jessi Brown > > Ph.D. student > Program in Ecology, Evolution, and Conservation Biology > University of Nevada, Reno > > ______________________________________________ > R-help at r-project.org 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. >
Hi, this might also work for You:> points(example.df$StartDate[ (row(example.df)%%5)==0 ],example.df$DSR2[ (row(example.df)%%5)==0 ], type="p", pch=3)> points(example.df$StartDate[ (row(example.df)%%5)==0 ],example.df$DSR2[ (row(example.df)%%5)==0 ], type="p", pch=3) Kind regads, Kimmo Jessi Brown wrote (21.02.2008):> Hello, fellow R enthusiasts. > > Ok, I've been racking my brain about this small issue, and between > searching the help archives and reading through the plot-related > documentation, I can't figure out how to achieve my desired endpoint > without some ugly, brute force coding. > > What I would like to do is make a plot in which only a subset of my > data are plotted, but in regular intervals, such as every 5th point > along the sequence. Is anyone aware of a built-in function in plot or > a related graphing family that can do this, or alternatively, a > simple way to extract the desired rows from my original dataframe? I > want to do this because I want to plot multiple series of points with > their confidence intervals (arrows), and even if I specify type="b," > the output ends up looking like just a series of crowded points. > > For example, if you try making the plot below, you will see how > > crowded two lines look without error bars: > > example.df<-data.frame(StartDate=(94:157), DSR1=seq(0.4, 0.8, > > length.out=64), DSR2=seq(0.3, 0.9, length.out=64)) > > plot(example.df$StartDate, example.df$DSR1, type="b", > > ylim=c(0.3,0.9)) points(example.df$StartDate, example.df$DSR2, > > type="b", pch=3) > > Any ideas for an elegant solution to my dilemma? > > Thanks in advance for any help. > > cheers, Jessi Brown > > Ph.D. student > Program in Ecology, Evolution, and Conservation Biology > University of Nevada, Reno > > ______________________________________________ > R-help at r-project.org 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.
Hi, sorry, the correct commands should look like this:> plot(example.df$StartDate[ (row(example.df)%%5)==0 ], example.df$DSR1[(row(example.df)%%5)==0 ], type="p", ylim=c(0.3,0.9))> points(example.df$StartDate[ (row(example.df)%%5)==0 ],example.df$DSR2[ (row(example.df)%%5)==0 ], type="p", pch=3) (In my previous mail I had the "points" twice) Kind regards, Kimmo
Here's a similar variant on what has been proposed, but is simpler. It relies on the fact that plot() doesn't need a ~. a<-1:100 b<-seq(1,length(a),5) plot(1:20, a[1:b]) Alternately, if you were using a data frame, as long as you knew the column names, you could do something like plot(my.data$x[b], my.data$y[b]) Simple, no? -- View this message in context: http://www.nabble.com/plotting-every-ith-data-point--tp15601953p15620348.html Sent from the R help mailing list archive at Nabble.com.