类似的问题已经被多次提出(here、here和here).然而,在我的情况下,它并不起作用.
所以我有这段代码(见下文),我想让"Column"Gene
中的所有元素都变成斜体,除了标题(Gene
)和摘要(Cancer
).
使用expression(italic())
会引发could not find function "italic"
错误.我想,我不得不在这里使用fp_txt_italic()
或txt_gp
,但我就是不明白它们是如何工作的.也许有人能给我一些启发:).
我的代码(简化了,因为原始代码稍微复杂一些):
library(forestplot)
library(dplyr)
mean <- c(0.9, 1.0, 1.1, 1.0 )
lower <- c(0.8, 0.9, 1.0, 0.9 )
upper <- c(1.0, 1.1, 1.2, 1.1 )
gene <- c("TP53", "KRAS", "CBP", "Cancer")
p_value <- c(0.06, 0.05, 0.01, 0.05 )
n_pos <- c(30, 40, 35, 50)
n_neg <- c(470, 460, 465, 450)
base_data <- tibble(mean = mean,
lower = lower,
upper = upper,
gene = gene,
n_pos = n_pos,
n_neg = n_neg,
p_value = p_value)
base_data |>
filter(gene != "Cancer") |>
forestplot(labeltext = c(gene, n_pos, n_neg, p_value),
xlog = TRUE,
vertices = TRUE,
txt_gp = fpTxtGp(
label = list(
grid::gpar(fontface = "italic"),
grid::gpar()))) |>
fp_append_row(mean = filter(base_data, gene == "Cancer")$mean,
lower = filter(base_data, gene == "Cancer")$lower,
upper = filter(base_data, gene == "Cancer")$upper,
gene = filter(base_data, gene == "Cancer")$gene,
n_pos = filter(base_data, gene == "Cancer")$n_pos,
n_neg = filter(base_data, gene == "Cancer")$n_neg,
p_value = filter(base_data, gene == "Cancer")$p_value,
is.summary = TRUE) |>
fp_add_header(gene = c("Gene\n"),
n_pos = c("n(mutated)\n"),
n_neg = c("n(wildtype)\n"),
p_value = c("p\n")) |>
fp_set_zebra_style("#EFEFEF") |>
fp_add_lines() |>
fp_decorate_graph(graph.pos = 2)