Лесной участок: хочу дать легенду за каждые 4 колонны
Без легенды мой лесной участок работает хорошо, используя приведенный ниже код
rm(list=ls())
library(forestplot)
test_data2<-data.frame(prev1=c(0, 70, NA),
prev0=c(0, 20, NA),
prev3=c(NA,NA , 30),
prev4=c(NA,NA , 30),
low1=c( 0, 30, NA),
low0=c( 0, 10, NA),
low3=c(NA, NA, 10),
low4=c(NA, NA, 10),
high1=c( 30, 90, NA),
high0=c( 20, 50, NA),
high3=c(NA,NA , 60),
high4=c(NA,NA , 60))
test_data2 <- rbind(rep(NA, 3), test_data2)
col_no2<-grep("prev", colnames(test_data2))
row_names2<-list(
list("Author", "You", "Asiimwe", "Martin"),
list("Year", "1988", "1984", "1964")
)
prev<-with(test_data2, cbind(prev1, prev0, prev3, prev4))
low<-with(test_data2, cbind(low1, low0, low3, low4))
high <- with(test_data2, cbind(high1, high0, high3, high4))
forestplot(row_names2, prev, low, high,
#zero = c(0, 0.01),
fn.ci_norm = list(list(fpDrawNormalCI, fpDrawCircleCI, fpDrawDiamondCI, fpDrawPointCI),
list(fpDrawNormalCI, fpDrawCircleCI, fpDrawDiamondCI, fpDrawPointCI),
list(fpDrawNormalCI, fpDrawCircleCI, fpDrawDiamondCI, fpDrawPointCI),
list(fpDrawNormalCI, fpDrawCircleCI, fpDrawDiamondCI, fpDrawPointCI)
),
xticks = c(0,10, 20, 30, 40, 50, 60, 70, 80, 90, 100),
txt_gp = fpTxtGp(label = list(gpar(fontfamily = ""),
gpar(fontfamily = "",
col = "black")),
ticks = gpar(fontfamily = "", cex=0.8),
xlab = gpar(fontfamily = "", cex = 0.8)),
boxsize=0.15,
line.margin = .1, # We need to add this to avoid crowding
lty.ci = c(1, 2, 3, 4),
xlab="Prevalence (%)",
new_page = TRUE)
Однако, когда я поставил легенду для каждого prev1, prev2, prev3 и prev4 с CI, появилась ошибка, и она не работает.
Код, который я использовал, был как ниже.
rm(list=ls())
library(forestplot)
test_data2<-data.frame(prev1=c(0, 70, NA),
prev0=c(0, 20, NA),
prev3=c(NA,NA , 30),
prev4=c(NA,NA , 30),
low1=c( 0, 30, NA),
low0=c( 0, 10, NA),
low3=c(NA, NA, 10),
low4=c(NA, NA, 10),
high1=c( 30, 90, NA),
high0=c( 20, 50, NA),
high3=c(NA,NA , 60),
high4=c(NA,NA , 60))
test_data2 <- rbind(rep(NA, 3), test_data2)
col_no2<-grep("prev", colnames(test_data2))
row_names2<-list(
list("Author", "You", "Asiimwe", "Martin"),
list("Year", "1988", "1984", "1964")
)
prev<-with(test_data2, cbind(prev1, prev0, prev3, prev4))
low<-with(test_data2, cbind(low1, low0, low3, low4))
high <- with(test_data2, cbind(high1, high0, high3, high4))
forestplot(row_names2, prev, low, high,
#zero = c(0, 0.01),
fn.ci_norm = list(list(fpDrawNormalCI, fpDrawCircleCI, fpDrawDiamondCI, fpDrawPointCI),
list(fpDrawNormalCI, fpDrawCircleCI, fpDrawDiamondCI, fpDrawPointCI),
list(fpDrawNormalCI, fpDrawCircleCI, fpDrawDiamondCI, fpDrawPointCI),
list(fpDrawNormalCI, fpDrawCircleCI, fpDrawDiamondCI, fpDrawPointCI)
),
xticks = c(0,10, 20, 30, 40, 50, 60, 70, 80, 90, 100),
txt_gp = fpTxtGp(label = list(gpar(fontfamily = ""),
gpar(fontfamily = "",
col = "black")),
ticks = gpar(fontfamily = "", cex=0.8),
xlab = gpar(fontfamily = "", cex = 0.8)),
boxsize=0.15,
line.margin = .1, # We need to add this to avoid crowding
lty.ci = c(1, 2, 3, 4),
xlab="Prevalence (%)",
new_page = TRUE,
legend=c("HIV-infected", "HIV-uninfected", "All participats", "Love-you"),
legend_args = fpLegend(pos = list("topright"),
r = unit(.1, "snpc")
))
У кого-нибудь есть идеи по этому поводу? Спасибо!
1 ответ
Это оказалось ошибкой - спасибо за подробный отчет, который позволил быструю отладку. Должно быть исправлено в версии 1.7.1 dev, установите его используя devtools
:
devtools::install_github("gforge/forestplot", ref="develop")