使用R forestplot软件包,是否有方法为方框指定可变颜色?
作为示例,我将使用R forestplot vignette()中的代码:使用R forestplot软件包,是否有方法为方框指定可变颜色?,r,plot,colors,forestplot,R,Plot,Colors,Forestplot,作为示例,我将使用R forestplot vignette()中的代码: 库(forestplot) #来自“rmeta”包的Cochrane数据 cochrane_from_rmeta这可以使用您自己的自定义线条绘制功能: library(forestplot) # Cochrane data from the 'rmeta'-package cochrane_from_rmeta <- structure(list( mean = c(NA, NA, 0.578, 0
库(forestplot)
#来自“rmeta”包的Cochrane数据
cochrane_from_rmeta这可以使用您自己的自定义线条绘制功能:
library(forestplot)
# Cochrane data from the 'rmeta'-package
cochrane_from_rmeta <-
structure(list(
mean = c(NA, NA, 0.578, 0.165, 0.246, 0.700, 0.348, 0.139, 1.017, NA, 0.531),
lower = c(NA, NA, 0.372, 0.018, 0.072, 0.333, 0.083, 0.016, 0.365, NA, 0.386),
upper = c(NA, NA, 0.898, 1.517, 0.833, 1.474, 1.455, 1.209, 2.831, NA, 0.731)),
.Names = c("mean", "lower", "upper"),
row.names = c(NA, -11L),
class = "data.frame")
tabletext<-cbind(
c("", "Study", "Auckland", "Block",
"Doran", "Gamsu", "Morrison", "Papageorgiou",
"Tauesch", NA, "Summary"),
c("Deaths", "(steroid)", "36", "1",
"4", "14", "3", "1",
"8", NA, NA),
c("Deaths", "(placebo)", "60", "5",
"11", "20", "7", "7",
"10", NA, NA),
c("", "OR", "0.58", "0.16",
"0.25", "0.70", "0.35", "0.14",
"1.02", NA, "0.53"))
fn <- local({
i = 0
no_lines <- sum(!is.na(cochrane_from_rmeta$mean))
b_clrs = colorRampPalette(colors=c("pink", "blue"))(no_lines)
l_clrs = colorRampPalette(colors=c("blue", "pink"))(no_lines)
function(..., clr.line, clr.marker){
i <<- i + 1
fpDrawNormalCI(..., clr.line = l_clrs[i], clr.marker = b_clrs[i])
}
})
forestplot(tabletext, fn.ci_norm = fn,
cochrane_from_rmeta,new_page = TRUE,
is.summary=c(TRUE,TRUE,rep(FALSE,8),TRUE),
clip=c(0.1,2.5),
xlog=TRUE,
col=fpColors(summary="royalblue"))
库(forestplot)
#来自“rmeta”包的Cochrane数据
cochrane_from_rmeta这可以使用您自己的自定义线条绘制功能:
library(forestplot)
# Cochrane data from the 'rmeta'-package
cochrane_from_rmeta <-
structure(list(
mean = c(NA, NA, 0.578, 0.165, 0.246, 0.700, 0.348, 0.139, 1.017, NA, 0.531),
lower = c(NA, NA, 0.372, 0.018, 0.072, 0.333, 0.083, 0.016, 0.365, NA, 0.386),
upper = c(NA, NA, 0.898, 1.517, 0.833, 1.474, 1.455, 1.209, 2.831, NA, 0.731)),
.Names = c("mean", "lower", "upper"),
row.names = c(NA, -11L),
class = "data.frame")
tabletext<-cbind(
c("", "Study", "Auckland", "Block",
"Doran", "Gamsu", "Morrison", "Papageorgiou",
"Tauesch", NA, "Summary"),
c("Deaths", "(steroid)", "36", "1",
"4", "14", "3", "1",
"8", NA, NA),
c("Deaths", "(placebo)", "60", "5",
"11", "20", "7", "7",
"10", NA, NA),
c("", "OR", "0.58", "0.16",
"0.25", "0.70", "0.35", "0.14",
"1.02", NA, "0.53"))
fn <- local({
i = 0
no_lines <- sum(!is.na(cochrane_from_rmeta$mean))
b_clrs = colorRampPalette(colors=c("pink", "blue"))(no_lines)
l_clrs = colorRampPalette(colors=c("blue", "pink"))(no_lines)
function(..., clr.line, clr.marker){
i <<- i + 1
fpDrawNormalCI(..., clr.line = l_clrs[i], clr.marker = b_clrs[i])
}
})
forestplot(tabletext, fn.ci_norm = fn,
cochrane_from_rmeta,new_page = TRUE,
is.summary=c(TRUE,TRUE,rep(FALSE,8),TRUE),
clip=c(0.1,2.5),
xlog=TRUE,
col=fpColors(summary="royalblue"))
库(forestplot)
#来自“rmeta”包的Cochrane数据
来自rmeta的cochrane_?fpColors
告诉我们:“如果在forestplot中每行有多个值,可以将颜色设置为向量,其中第一个值表示第一行/框,第二个值表示第二行/框等。”因此,我不认为不修改函数就可以做您想做的事情。?fpColors
告诉我们:“如果forestplot中每行有多个值,则可以将颜色设置为向量,其中第一个值表示第一行/框,第二个值表示第二行/框等。“因此,我不认为不修改函数就可以做任何你想做的事情。很抱歉再次挖掘这个问题,但我一直在修改上述代码,以便为图表中的每个方框获得替代颜色。很简单,但我想不出来。假设图形上有三个框,代码可能是这样的。。。。。。col=fpColors(框=“皇家蓝”、“绿”、“黄”)、。。。。。。但这对我不起作用(@user2363642-fpColors目前不允许这样做。您需要创建自己的绘图函数来处理这种情况。在上面的示例中,只需设置b_clrs=c(“皇家蓝”、“绿色”、“黄色”)
你很好。这有点粗糙,但它可以完成任务。很抱歉再次挖掘这个问题,但我一直在修改上面的代码,以便为图表中的每个方框获得替代颜色。非常简单,但我无法计算。假设图表上有三个方框,代码可能是这样的?……col=fpColors(box=“royalblue”、“green”、“yellow”),……但这对我不起作用。:(@user2363642-fpColors目前不允许这样做。您需要创建自己的绘图函数来处理这种情况。在上面的示例中,只需设置b_clrs=c(“royalblue”、“green”、“yellow”)
和您的罚款。这有点粗糙,但它可以完成任务。
library(forestplot)
# Cochrane data from the 'rmeta'-package
cochrane_from_rmeta <-
structure(list(
mean = c(NA, NA, 0.578, 0.165, 0.246, 0.700, 0.348, 0.139, 1.017, NA, 0.531),
lower = c(NA, NA, 0.372, 0.018, 0.072, 0.333, 0.083, 0.016, 0.365, NA, 0.386),
upper = c(NA, NA, 0.898, 1.517, 0.833, 1.474, 1.455, 1.209, 2.831, NA, 0.731)),
.Names = c("mean", "lower", "upper"),
row.names = c(NA, -11L),
class = "data.frame")
tabletext<-cbind(
c("", "Study", "Auckland", "Block",
"Doran", "Gamsu", "Morrison", "Papageorgiou",
"Tauesch", NA, "Summary"),
c("Deaths", "(steroid)", "36", "1",
"4", "14", "3", "1",
"8", NA, NA),
c("Deaths", "(placebo)", "60", "5",
"11", "20", "7", "7",
"10", NA, NA),
c("", "OR", "0.58", "0.16",
"0.25", "0.70", "0.35", "0.14",
"1.02", NA, "0.53"))
fn <- local({
i = 0
no_lines <- sum(!is.na(cochrane_from_rmeta$mean))
b_clrs = colorRampPalette(colors=c("pink", "blue"))(no_lines)
l_clrs = colorRampPalette(colors=c("blue", "pink"))(no_lines)
function(..., clr.line, clr.marker){
i <<- i + 1
fpDrawNormalCI(..., clr.line = l_clrs[i], clr.marker = b_clrs[i])
}
})
forestplot(tabletext, fn.ci_norm = fn,
cochrane_from_rmeta,new_page = TRUE,
is.summary=c(TRUE,TRUE,rep(FALSE,8),TRUE),
clip=c(0.1,2.5),
xlog=TRUE,
col=fpColors(summary="royalblue"))