Skip to content

Survplot, Y-axis in percent

9 messages · maziar.mohaddes, David Winsemius, Andrews, Chris +1 more

#
Hi

I am a new fan of R after getting mad with the graphical functional in SPSS. 
I have been able to create a nice looking Kaplan Meyer graph using Survplot
function. 
However I have difficulties in turning the y axis to percent instead of the
default 0-1 scale.
Further I have tried the function yaxt="n" without any results. Any help in
this matter will be appreciated. 
The code is posted below:

par(mfrow=c(1,1))
fit <- survfit(Surv(revreg$Tcuprev , revreg$Rcup_n_j_n)~revreg$RAceGrp_1Maz)
fit
survplot (fit, col=c("gray1","gray40"), lty=1, lwd = 1,
col.fill=c("gray50","gray80"), 
          mark.time= T,  conf="bands" , conf.int=.95, add=F , 
          xlim=c(0, 20) , time.inc = 4, 
          ylim=c(0.5, 1), 
          xlab="Years Postoperative" , ylab="Cumulative Survival
Probability" , 
          label.curves=F , abbrev.label=F , 
          yaxt="n"
          )




--
View this message in context: http://r.789695.n4.nabble.com/Survplot-Y-axis-in-percent-tp4648572.html
Sent from the R help mailing list archive at Nabble.com.
#
On Nov 6, 2012, at 8:10 AM, maziar.mohaddes wrote:

            
Probably better in the future to supply a data argument and then you formula only needs the column names.
As far as I can see, survplot.survfit (from package rms) is written with base graphics, so you need to suppress the default axis call with yaxt=FALSE, and replace it with your desired values using axis(2, at=..., labels=...). No testing in the absence of data.
You should also realize that Nabble is not Rhelp.
#
base graphics, so you need to suppress the
Thanks alot for your response. Unfortunately yaxt function does not seem to
be supported  in survplot (rms package).
Obviously My post has been malplaced, could u please guide me in where to
place to post?

Thanks in advance
#
On Nov 6, 2012, at 12:18 PM, maziar.mohaddes wrote:

            
'yaxt' is not a function, but rather a parameter given to survplot. And I admit I didn't look it up, so the correct call may be yaxt="n". I continue to make that mistake, so this might be an example showing why submitting test data is a good idea.
At the bottom of every posting to Rhelp are two links:

One to the Posting Guide:

http://www.R-project.org/posting-guide.html

The other to the page with information and links to support subscriptions and choices for delivery:

https://stat.ethz.ch/mailman/listinfo/r-help
David Winsemius, MD
Alameda, CA, USA
#
On Nov 6, 2012, at 1:39 PM, maziar.mohaddes wrote:

            
Why not use the data in examples on the help page?
#
It doesn't look like 'survplot' allows you to control the yaxis formatting in that way.  You can edit the function survplot.survfit directly if you really need to: fix(survplot.survfit).  The relevant line to change is (I believe) mgp.axis(2, at = pretty(ylim)) to mgp.axis(2, at = pretty(ylim), labels= 100*pretty(ylim)).  However, if you are new to R this could cause you more trouble than you want.

Alternatively, you can use 'plot' with the yaxt="n" option. e.g.,
mod <- survfit(Surv(time,status)~ph.ecog, data=lung)
plot(mod, yaxt="n", col=1:4, ylab="Survival Percent", xlab="Days", main="Lung Cancer Data\nEffect of ph.ecog on Survival")
axis(2, at=seq(0,1,0.2), labels=paste(seq(0,100,20), "%", sep=""), las=1)

But that doesn't have all the other stuff you appear to want (e.g., shaded confidence bands).

Good luck,
Chris

-----Original Message-----
From: maziar.mohaddes [mailto:maziar.mohaddes at gmail.com] 
Sent: Tuesday, November 06, 2012 11:11 AM
To: r-help at r-project.org
Subject: [R] Survplot, Y-axis in percent

Hi

I am a new fan of R after getting mad with the graphical functional in SPSS. 
I have been able to create a nice looking Kaplan Meyer graph using Survplot function. 
However I have difficulties in turning the y axis to percent instead of the default 0-1 scale.
Further I have tried the function yaxt="n" without any results. Any help in this matter will be appreciated. 
The code is posted below:

par(mfrow=c(1,1))
fit <- survfit(Surv(revreg$Tcuprev , revreg$Rcup_n_j_n)~revreg$RAceGrp_1Maz)
fit
survplot (fit, col=c("gray1","gray40"), lty=1, lwd = 1, col.fill=c("gray50","gray80"), 
          mark.time= T,  conf="bands" , conf.int=.95, add=F , 
          xlim=c(0, 20) , time.inc = 4, 
          ylim=c(0.5, 1), 
          xlab="Years Postoperative" , ylab="Cumulative Survival Probability" , 
          label.curves=F , abbrev.label=F , 
          yaxt="n"
          )




--
View this message in context: http://r.789695.n4.nabble.com/Survplot-Y-axis-in-percent-tp4648572.html
Sent from the R help mailing list archive at Nabble.com.


**********************************************************
Electronic Mail is not secure, may not be read every day, and should not be used for urgent or sensitive issues
#
Don't change the code.  Just use survplot(..., fun=function(y)100*y,
ylim=c(0,100)).
But note that percent is not recommended as it is more confusing than
proportions, especially when talking about differences in percents.
Frank

Andrews, Chris wrote

            
-----
Frank Harrell
Department of Biostatistics, Vanderbilt University
--
View this message in context: http://r.789695.n4.nabble.com/Survplot-Y-axis-in-percent-tp4648572p4648697.html
Sent from the R help mailing list archive at Nabble.com.
#
Dear Prof Harell, great thanks for your solution to this. I have been trying
to figure this out last four weeks by reading loads of manuals and forums
around the net without success.
Once again thank you for the solution and the great option of shadowed Conf
int in the survplot

Best Regards 



-----
Maziar Mohaddes, MD
Gothenburg, Sweden
--
View this message in context: http://r.789695.n4.nabble.com/Survplot-Y-axis-in-percent-tp4648572p4648703.html
Sent from the R help mailing list archive at Nabble.com.