Hi: If you intend to use your preferred solution, then I would suggest that you increase the size of the plotted points relative to the thickness of the adjoining lines; in your last line of code, something like
xyplot(y~x, group=g, data=tmp2, type="b", cex = 2, pch = 16) This way, it will be easier to spot where data values are missing. HTH, Dennis On Thu, May 6, 2010 at 10:44 AM, Tao Shi <shi...@hotmail.com> wrote: > > I just found out that my "does this by default" statement (by which I was > referring to the ability to automatically connect two points with a NA in > the middle in a time series) is wrong! Actually, all plotting functions, > i.e. plot, matplot and xyplot, don't plot NAs. The solution I came up with > is convert the data to "long" table, remove NAs, and then use xyplot. See > example below: > > set.seed(1234) > a=b=matrix(rnorm(9), 3,3) > b[2,2]=NA > matplot(a, type="b") > matplot(b, type="b") ## I want the two "2" connected! > matplot(b, type="l") ## Now my data for the second column are missing from > the graph > > > ## my solution > tmp1 <- data.frame(g=rep(1:3,each=3), x=rep(1:3,3), y=c(b)) > xyplot(y~x, group=g, data=tmp1, type="b", pch=c("1","2","3")) ## there is > still no line connecting two "2"s. > > tmp2 <- tmp1[!is.na(tmp1$y),] > xyplot(y~x, group=g, data=tmp2, type="b") > ## this is what I want, b/c it's easier for me to keep track of both trend > and missing values. The original post was really asking whether a simple > change of some parameters in matplot can do this. Now, I guess not. > > ...Tao > > > ---------------------------------------- > > From: maech...@stat.math.ethz.ch > > Date: Thu, 6 May 2010 18:34:22 +0200 > > To: shi...@hotmail.com > > CC: ggrothendi...@gmail.com; r-help@r-project.org > > Subject: Re: [R] 'matplot' for matrix with NAs: broken lines > > > >>>>>> "TS" == Tao Shi > >>>>>> on Wed, 5 May 2010 20:11:26 +0000 writes: > > > > TS> Thanks, Gabor! So, there is no way I can change some graphic > parameters in 'matplot' to get this? > > > > > > TS> I forgot to mention that I purposely use type="b", so I know where > the missing data are. With imputed data, either using "b" or "l", there is > no way to keep track of NAs. Plus, in my real data sometimes there is only > one non-missing value in a particular column and na.approx can't work (well > I could selectively impute the NAs ... ) > > > > TS> So far, my best solution to this is to use "xyplot". It does this by > default, but of course I need some data manipulation first. > > > > "does this by default" meaning what? > > I don't think it does impute missing, does it? > > > > Can you elaborate, using your example (below)? > > > > I found Gabor's answer appropriate, > > I really cannot see why matplot() should behave differently here... > > > > ---- > > > > Martin Maechler > > > > > > > > > > TS> ---------------------------------------- > >>> From: ggrothendi...@gmail.com > >>> Date: Wed, 5 May 2010 15:45:44 -0400 > >>> Subject: Re: [R] 'matplot' for matrix with NAs: broken lines > >>> To: shi...@hotmail.com > >>> CC: r-help@r-project.org > >>> > >>> Try this: > >>> > >>> library(zoo) > >>> matplot(na.approx(b), type = "l") > >>> > >>> On Wed, May 5, 2010 at 2:30 PM, Tao Shi wrote: > >>>> > >>>> Hi list, > >>>> > >>>> I know that points involving NAs are not plotted in 'matplot', but > when I plot them as lines, I still want the lines to connect all the points > (i.e. not broken where there are NAs). Please see the example below. How can > I achieve this in 'matplot'? If I can't, any good alternatives so I don't > have to use 'plot' + 'lines' and loop through all the columns. > >>>> > >>>> Many thanks! > >>>> > >>>> ...Tao > >>>> > >>>>> set.seed(1234) > >>>>> a=b=matrix(rnorm(9), 3,3) > >>>>> b[2,2]=NA > >>>>> matplot(a, type="b") > > TS> [[elided Hotmail spam]] > >>>>> matplot(b, type="l") ## Now my data for the second column are missing > from the graph > >>>> > >>>> > >>>> _________________________________________________________________ > >>>> Hotmail is redefining busy with tools for the New Busy. Get more from > your inbox. > >>>> > >>>> N:WL:en-US:WM_HMP:042010_2 > >>>> ______________________________________________ > >>>> R-help@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. > >>>> > > > > TS> _________________________________________________________________ > > TS> Hotmail has tools for the New Busy. Search, chat and e-mail from your > inbox. > > > > TS> N:WL:en-US:WM_HMP:042010_1 > > TS> ______________________________________________ > > TS> R-help@r-project.org mailing list > > TS> https://stat.ethz.ch/mailman/listinfo/r-help > > TS> PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > > TS> and provide commented, minimal, self-contained, reproducible code. > > _________________________________________________________________ > Hotmail has tools for the New Busy. Search, chat and e-mail from your > inbox. > > N:WL:en-US:WM_HMP:042010_1 > ______________________________________________ > R-help@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. > [[alternative HTML version deleted]] ______________________________________________ R-help@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.