Thanks for the suggestion! ________________________________ > Date: Thu, 6 May 2010 13:40:04 -0700 > Subject: Re: [R] 'matplot' for matrix with NAs: broken lines > From: djmu...@gmail.com > To: shi...@hotmail.com > CC: maech...@stat.math.ethz.ch; r-help@r-project.org > > 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> 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") > [[elided Hotmail spam]] > > 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. > > _________________________________________________________________ The New Busy think 9 to 5 is a cute idea. Combine multiple calendars with Hotmail.
PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_5 ______________________________________________ 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.