这是对先前提出的相关问题的跟进: 数据和代码在这里error message when ploting subjects at risk with survplot
当试图绘制幸存图下面的风险对象时,表格要么与x轴的标签重叠,要么没有出现在图表上(在下面的示例中,缺少一行; totalps = 4)。如何解决这个问题?
从文档到survplot命令,我知道我可能需要使用par命令重置绘图的边距(例如par(mar = c(5,4,4,2)+。1)。)我不明白如何将这个par命令包含在survplot中。
此外,在有风险的受试者的表格线之间存在相当大的空间。有没有直接的方法来减少这个空间?
这里是剧情的代码:
library(rms)
pdf(plot1.pdf)
survplot(KM.Duration.totalps[-1],
xlab="duration in months", ylab="survival prob",
conf="none",
label.curves=list(method="arrow", cex=0.8),
time.inc=12,
col=c(1:4),
levels.only = FALSE,
n.risk=TRUE,
y.n.risk = -0.3, cex.n.risk = 0.6
)
dev.off()
答案 0 :(得分:1)
在绘制之前设置边距,如下所示:
par(mar=(0,0,0,0))
plot(c(1:10))
会给你一个没有边距的情节。 par(mar=(1,2,3,4)
会在底部为您提供一条文本行,两条在左侧,三条在顶部,另外四条在右侧。
如果要以英寸为单位指定边距,请使用par(mai=(x,x,x,x))
。 R的默认值是输出设备是7 x 7英寸,虽然取决于设备(包括我写的),但可能有点模糊。
答案 1 :(得分:1)
只需阅读帮助页面:
sep.n.risk
上y限制的倍数 - 用于分隔包含有风险的受试者数量的文本行的y下限。默认值为.056 *(ylim [2] -ylim [1])。
并且一些par函数最好在绘图之前使用par(但是在pdf()调用之后),所以:
pdf(...)
par( mar=c(7,4,4,2)+.1) ) # adds two lines to default space along bottom margin
survplot(...