Thank you Jim for helping! Yes, I will try Mark's method. John
On Wednesday, September 30, 2020, 01:47:55 AM PDT, Jim Lemon <drjimle...@gmail.com> wrote: Hi John, Hmmm, this works: plot(1:10) xylim<-par("usr") clip(5,xylim[2],xylim[3],xylim[4]) lines(10:1) so I suspect that there is a "lines" method that resets the clipping region out of sight. Fortunately Mark Schwartz provided a way to get your plot so I will give the wall against which I have been banging my head a break. Jim On Wed, Sep 30, 2020 at 1:57 PM array chip <arrayprof...@yahoo.com> wrote: > > Jim, > > I tried a few things, I found that clip() works if I just do some regular > graphing tasks. But as long as I run lines(fit) with "fit" object is a > survfit object, this would reset to default plot region. See the ovarian > example below: > > library(survival) > ovarian1<-ovarian > ovarian1$fustat[ovarian$futime>450]<-0 > ovarian1$futime[ovarian$futime>450]<-450 > ovarian2<-subset(ovarian,futime>450) > > fit1 <- survfit(Surv(futime, fustat) ~ rx, data = ovarian1) > fit2 <- survfit(Surv(futime, fustat) ~ rx, data = ovarian2) > > plot(fit1, xlim=c(0,1200), col = 1:2) > abline(v=450) > xylim<-par("usr") > points(-1,-1) > clip(450,xylim[2],xylim[3],xylim[4]) > abline(h=0.5,col=2) ### YES, clipping() works! > > lines(fit2, col = 3:4,lty=2) ### clipping does not work! reset to default > plot region > abline(h=0.4,col=2) ### NO, clipping() does not work! > > So disappointed with this, otherwise this would be such a simple method to do > what I want. > > Thanks, > > John > > On Tuesday, September 29, 2020, 07:58:53 PM PDT, Jim Lemon > <drjimle...@gmail.com> wrote: > > Hi John, > I should have remembered this. For some reason, the clip() function > doesn't operate until you have issued a graphics command. Try: > > points(-1,-1) > > before calling lines() > > Jim > > On Wed, Sep 30, 2020 at 12:26 PM array chip <arrayprof...@yahoo.com> wrote: > > > > Hi Jim, > > > > I tried the clip() function below, surprisingly it did not work! I read the > > R help file and feel your script should work. To have a workable example, I > > used the ovarian dataset in the survival package as an example: > > > > ovarian1<-ovarian > > ovarian1$fustat[ovarian$futime>450]<-0 > > ovarian1$futime[ovarian$futime>450]<-450 > > > > ovarian2<-subset(ovarian,futime>450) > > > > fit1 <- survfit(Surv(futime, fustat) ~ rx, data = ovarian1) > > fit2 <- survfit(Surv(futime, fustat) ~ rx, data = ovarian2) > > > > plot(fit1, xlim=c(0,1200), col = 1:2) > > abline(v=450) > > xylim<-par("usr") > > clip(450,xylim[2],xylim[3],xylim[4]) > > lines(fit2, col = 3:4,lty=2) > > > > I can still see that the extra horizontal line on the top. > > > > Can you or anyone have any suggestion what went wrong? > > > > Thanks, > > > > John > > > > > > On Tuesday, September 29, 2020, 01:35:48 AM PDT, Jim Lemon > > <drjimle...@gmail.com> wrote: > > > > > > > > > > > > Hi John, > > Perhaps the most direct way would be: > > > > plot(fit1, col=1:2) > > xylim<-par("usr") > > clip(4,xylim[2],xylim[3],xylim[4]) > > lines(fit2,col=1:2) > > > > Remember that the new clipping rectangle will persist until you or > > something else resets it. > > > > Jim > > > > On Tue, Sep 29, 2020 at 10:34 AM array chip via R-help > > <r-help@r-project.org> wrote: > > > > > > Hello, > > > > > > Can anyone suggest a simple way to generate a Kaplan-Meier plot with 2 > > > survfit objects, just like this one: > > > > > > https://drive.google.com/file/d/1fEcpdIdE2xYtA6LBQN9ck3JkL6-goabX/view?usp=sharing > > > > > > Suppose I have 2 survfit objects: fit1 is for the curve on the left > > > (survtime has been truncated to the cutoff line: year 5), fit2 is for the > > > curve on the right (minimum survival time is at the cutoff line: year 5), > > > but if I do the following: > > > > > > plot(fit1, col=1:2) > > > lines(fit2,col=1:2) > > > > > > Then I will have an horizontal line on the top that connect from 0 to 4 > > > years, which I do not want that to be drawn (see blue arrow below): > > > > > > https://drive.google.com/file/d/178mQGlhnaOg9PA-oE-W_W5CtrGD03ljH/view?usp=sharing > > > > > > Can anyone have a strategy to make this kind of plot happen? > > > > > > Thanks, > > > > > > John > > > > > > > > ______________________________________________ > > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > > 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. > > ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.