獲取示例數(shù)據(jù)
如果能夠提供回歸分析的結(jié)果复亏,特別是使用非ascii字母會(huì)很方便。 在本節(jié)中私杜,示例數(shù)據(jù)是研究比較瑞典和丹麥之間進(jìn)行全髖關(guān)節(jié)置換術(shù)后1年與健康相關(guān)的生活質(zhì)量預(yù)后評(píng)估的比較:
library(forestplot)
data(HRQoL)
clrs <- fpColors(box="royalblue",line="darkblue", summary="royalblue")
tabletext <-
list(c(NA, rownames(HRQoL$Sweden)),
append(list(expression(beta)), sprintf("%.2f", HRQoL$Sweden[,"coef"])))
forestplot(tabletext,
rbind(rep(NA, 3),
HRQoL$Sweden),
col=clrs,
xlab="EQ-5D index")
更改字體設(shè)置
換個(gè)字體換種風(fēng)格:
tabletext <- cbind(rownames(HRQoL$Sweden),
sprintf("%.2f", HRQoL$Sweden[,"coef"]))
forestplot(tabletext,
txt_gp = fpTxtGp(label = gpar(fontfamily = "HersheyScript")),
rbind(HRQoL$Sweden),
col=clrs,
xlab="EQ-5D index")
在gp-styles中還有選擇的可能性:
forestplot(tabletext,
txt_gp = fpTxtGp(label = list(gpar(fontfamily = "HersheyScript"),
gpar(fontfamily = "",
col = "#660000")),
ticks = gpar(fontfamily = "", cex=1),
xlab = gpar(fontfamily = "HersheySerif", cex = 1.5)),
rbind(HRQoL$Sweden),
col=clrs,
xlab="EQ-5D index")
置信區(qū)間
對(duì)于不確定的估計(jì)遭商,為了保持更感興趣的估計(jì)的分辨率,對(duì)區(qū)間進(jìn)行修剪是很方便的降狠。裁剪只是在置信區(qū)間中添加一個(gè)箭頭,請(qǐng)參見(jiàn)下面的最低估計(jì)值:
forestplot(tabletext,
rbind(HRQoL$Sweden),
clip =c(-.1, Inf),
col=clrs,
xlab="EQ-5D index")
多個(gè)置信區(qū)間
當(dāng)將相同曝露的相似結(jié)果組合在一起時(shí)庇楞,我發(fā)現(xiàn)每行使用多個(gè)波段是很有用的榜配。這有效地增加了數(shù)據(jù)覆蓋度,同時(shí)使兩個(gè)波段之間的比較變得微不足道吕晌。作者在他的文章通過(guò)全髖關(guān)節(jié)置換術(shù)后1年對(duì)瑞典和丹麥患者進(jìn)行了比較蛋褥。在這里,由于丹麥樣本要小得多睛驳,所以剪輯也變得很明顯囚痴,從而產(chǎn)生了更寬的置信區(qū)間。
tabletext <- tabletext[,1]
forestplot(tabletext,
mean = cbind(HRQoL$Sweden[, "coef"], HRQoL$Denmark[, "coef"]),
lower = cbind(HRQoL$Sweden[, "lower"], HRQoL$Denmark[, "lower"]),
upper = cbind(HRQoL$Sweden[, "upper"], HRQoL$Denmark[, "upper"]),
clip =c(-.1, 0.075),
col=fpColors(box=c("blue", "darkred")),
xlab="EQ-5D index")
估算指標(biāo)
用戶可以在多個(gè)不同的評(píng)估指標(biāo)之間進(jìn)行選擇苇本。使用上面的示例美莫,我們可以將丹麥語(yǔ)結(jié)果設(shè)置為圓圈。
forestplot(tabletext,
fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
mean = cbind(HRQoL$Sweden[, "coef"], HRQoL$Denmark[, "coef"]),
lower = cbind(HRQoL$Sweden[, "lower"], HRQoL$Denmark[, "lower"]),
upper = cbind(HRQoL$Sweden[, "upper"], HRQoL$Denmark[, "upper"]),
clip =c(-.125, 0.075),
col=fpColors(box=c("blue", "darkred")),
xlab="EQ-5D index")
置信區(qū)間/框繪制功能是完全可定制的蹬跃。您可以編寫(xiě)自己的函數(shù)來(lái)接受參數(shù):lower_limit, estimate, upper_limit, size, y.offset, clr.line, clr.marker和 lwd
匙瘪。
選擇線型
用戶還可以通過(guò)指定為特定于元素的*lty.ci*
命令在所有可用行類(lèi)型之間進(jìn)行選擇。
forestplot(tabletext,
fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
mean = cbind(HRQoL$Sweden[, "coef"], HRQoL$Denmark[, "coef"]),
lower = cbind(HRQoL$Sweden[, "lower"], HRQoL$Denmark[, "lower"]),
upper = cbind(HRQoL$Sweden[, "upper"], HRQoL$Denmark[, "upper"]),
clip =c(-.125, 0.075),
lty.ci = c(1, 2),
col=fpColors(box=c("blue", "darkred")),
xlab="EQ-5D index")
Legends
Adding a basic legend is done through the legend
argument:
forestplot(tabletext,
legend = c("Sweden", "Denmark"),
fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
mean = cbind(HRQoL$Sweden[, "coef"], HRQoL$Denmark[, "coef"]),
lower = cbind(HRQoL$Sweden[, "lower"], HRQoL$Denmark[, "lower"]),
upper = cbind(HRQoL$Sweden[, "upper"], HRQoL$Denmark[, "upper"]),
clip =c(-.125, 0.075),
col=fpColors(box=c("blue", "darkred")),
xlab="EQ-5D index")
This can be further customized by setting the legend_args
argument using the fpLegend
function:
forestplot(tabletext,
legend_args = fpLegend(pos = list(x=.85, y=0.25),
gp=gpar(col="#CCCCCC", fill="#F9F9F9")),
legend = c("Sweden", "Denmark"),
fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
mean = cbind(HRQoL$Sweden[, "coef"], HRQoL$Denmark[, "coef"]),
lower = cbind(HRQoL$Sweden[, "lower"], HRQoL$Denmark[, "lower"]),
upper = cbind(HRQoL$Sweden[, "upper"], HRQoL$Denmark[, "upper"]),
clip =c(-.125, 0.075),
col=fpColors(box=c("blue", "darkred")),
xlab="EQ-5D index")
刻度和網(wǎng)格
如果默認(rèn)記號(hào)與所需值不匹配,則只需使用xticks
參數(shù)即可輕松更改這些記號(hào):
forestplot(tabletext,
legend = c("Sweden", "Denmark"),
fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
mean = cbind(HRQoL$Sweden[, "coef"], HRQoL$Denmark[, "coef"]),
lower = cbind(HRQoL$Sweden[, "lower"], HRQoL$Denmark[, "lower"]),
upper = cbind(HRQoL$Sweden[, "upper"], HRQoL$Denmark[, "upper"]),
clip =c(-.125, 0.075),
col=fpColors(box=c("blue", "darkred")),
xticks = c(-.1, -0.05, 0, .05),
xlab="EQ-5D index")
通過(guò)向刻度添加labels
屬性丹喻,用戶可以進(jìn)一步定制刻度薄货,下面是每隔一個(gè)刻度定制刻度文本的示例:
xticks <- seq(from = -.1, to = .05, by = 0.025)
xtlab <- rep(c(TRUE, FALSE), length.out = length(xticks))
attr(xticks, "labels") <- xtlab
forestplot(tabletext,
legend = c("Sweden", "Denmark"),
fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
mean = cbind(HRQoL$Sweden[, "coef"], HRQoL$Denmark[, "coef"]),
lower = cbind(HRQoL$Sweden[, "lower"], HRQoL$Denmark[, "lower"]),
upper = cbind(HRQoL$Sweden[, "upper"], HRQoL$Denmark[, "upper"]),
clip =c(-.125, 0.075),
col=fpColors(box=c("blue", "darkred")),
xticks = xticks,
xlab="EQ-5D index")
有時(shí),當(dāng)用戶繪制了一個(gè)非常高的圖形碍论,又想要添加輔助線谅猾,以便更容易地看到刻度線。這在非劣勢(shì)或等價(jià)性研究中很有用鳍悠。則可以通過(guò)更改grid
參數(shù)來(lái)實(shí)現(xiàn):
forestplot(tabletext,
legend = c("Sweden", "Denmark"),
fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
mean = cbind(HRQoL$Sweden[, "coef"], HRQoL$Denmark[, "coef"]),
lower = cbind(HRQoL$Sweden[, "lower"], HRQoL$Denmark[, "lower"]),
upper = cbind(HRQoL$Sweden[, "upper"], HRQoL$Denmark[, "upper"]),
clip =c(-.125, 0.075),
col=fpColors(box=c("blue", "darkred")),
grid = TRUE,
xticks = c(-.1, -0.05, 0, .05),
xlab="EQ-5D index")
通過(guò)將gpar
對(duì)象添加到矢量中赊瞬,您可以輕松地自定義要使用的網(wǎng)格線以及網(wǎng)格線的類(lèi)型:
forestplot(tabletext,
legend = c("Sweden", "Denmark"),
fn.ci_norm = c(fpDrawNormalCI, fpDrawCircleCI),
boxsize = .25, # We set the box size to better visualize the type
line.margin = .1, # We need to add this to avoid crowding
mean = cbind(HRQoL$Sweden[, "coef"], HRQoL$Denmark[, "coef"]),
lower = cbind(HRQoL$Sweden[, "lower"], HRQoL$Denmark[, "lower"]),
upper = cbind(HRQoL$Sweden[, "upper"], HRQoL$Denmark[, "upper"]),
clip =c(-.125, 0.075),
col=fpColors(box=c("blue", "darkred")),
grid = structure(c(-.1, -.05, .05),
gp = gpar(lty = 2, col = "#CCCCFF")),
xlab="EQ-5D index")
如果您不熟悉結(jié)構(gòu)調(diào)用,則相當(dāng)于生成一個(gè)向量贼涩,然后設(shè)置一個(gè)屬性巧涧,例如:
grid_arg <- c(-.1, -.05, .05)
attr(grid_arg, "gp") <- gpar(lty = 2, col = "#CCCCFF")
identical(grid_arg,
structure(c(-.1, -.05, .05),
gp = gpar(lty = 2, col = "#CCCCFF")))
# Returns TRUE
好了,就這些. 作者希望這個(gè) forestplot
包對(duì)你有用.
參考:https://github.com/gforge/forestplot