我正在尝试将数据绘制到具有对数变换的连续x轴的图形上。我的代码如下:
(forestplot的样本数据)
tabletext <- cbind(c("Analysis","combined","A","B"),
c("Observational","0.92 [0.87,0.96]","0.94 [0.89,1.01]","0.88 [0.82,0.95]"),
c("MR","0.95 [0.92,0.98]","0.96 [0.92,1.00]","0.87 [0.78,0.97]"))
mean_mr <- c(NA,0.95,0.96,0.84)
mean_obs <- c(NA,0.92,0.94,0.85)
lower_mr <- c(NA,0.92,0.92,0.78)
lower_obs <- c(NA,0.87,0.89,0.82)
upper_mr <- c(NA, 0.98,1.00,0.97)
upper_obs <- c(NA,0.96,1.10,0.94)
mean <- cbind(mean_obs,mean_mr)
lower <- cbind(lower_obs,lower_mr)
upper <- cbind(upper_obs,upper_mr)
生成森林地块:
library(forestplot)
forestplot(tabletext,mean,lower,upper,is.summary=c(TRUE,rep(FALSE,3)),
boxsize=0.2,hrzl_lines=gpar(lwd=1,columns=1:4),xlog=1,
col=fpColors(box=c("black"),line=c("black")),
txt_gp = fpTxtGp(label = gpar(fontfamily = "",cex=1.1),
ticks=gpar(fontfamily="",cex=0.8),xlab = gpar(fontfamily = "", cex = 1.1)))
我尝试使用xlim指定x轴限制,但这对绘图没有影响,xticks似乎覆盖了xlog参数。我还注意到,即使我删除了xlog参数,我也无法指定x轴限制。有没有什么方法可以在forestplot中的(对数转换的)比例上指定x轴限制?
答案 0 :(得分:0)
你有哪个forestplot版本? 我在help page上找到了这个说明:
“注意:与原始林图的一个重要区别是,当前函数将xlog解释为x轴为日志格式,即您需要以antilog / exp格式提供数据。” 。根据我的理解,xlog只是将行绘制为1而不是0.
如果我用
运行你的例子 forestplot(tabletext,mean,lower,upper,is.summary=c(TRUE,rep(FALSE,3)),
boxsize=0.2,hrzl_lines=gpar(lwd=1,columns=1:4), xlog=1,
col=fpColors(box=c("black"),line=c("black")),
txt_gp = fpTxtGp(label = gpar(fontfamily = "",cex=1.1),
ticks=gpar(fontfamily="",cex=0.8),xlab = gpar(fontfamily = "", cex = 1.1)),
xticks = c(0.4, 0.77, 0.9, 1)
)
- &GT;限制被改变,以及xticks。
答案 1 :(得分:0)
似乎&#34; clip&#34;用于&#34;剪切置信区间到箭头的下限和上限&#34; (根据the forestplot package)。
您可以在代码中添加:clip(c(下限值,上限值))。 例如,在您的代码中,我将下限设置为0.8,将上限设置为1.2:
forestplot(tabletext,mean,lower,upper,is.summary=c(TRUE,rep(FALSE,3)), clip(c(0.8, 1.2))
boxsize=0.2,hrzl_lines=gpar(lwd=1,columns=1:4),xlog=1,
col=fpColors(box=c("black"),line=c("black")),
txt_gp = fpTxtGp(label = gpar(fontfamily = "",cex=1.1),
ticks=gpar(fontfamily="",cex=0.8),xlab = gpar(fontfamily = "", cex = 1.1)))
奇怪的是,下限不会发生变化,但是上限得到了扩展,因此xticks不再覆盖xlog参数。希望这有效!