使用 geom_venn 函式繪制維恩圖時是否可以更改字體樣式?我試過 theme(text=element_text(size=16, family="Comic Sans MS")) 但由于某種原因它不起作用
uj5u.com熱心網友回復:
我不知道,ggvenn你使用哪個庫(想想,那個),但正如你所看到的,改變字體不會影響圖表。只有軸,圖例等。
例子:
library(ggvenn)
d <- tibble(value = c(1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13),
`Set 1` = c(T, F, T, T, F, T, F, T, F, F, F),
`Set 2` = c(T, F, F, T, F, F, F, T, F, F, T),
`Set 3` = c(T, T, F, F, F, F, T, T, F, F, F),
`Set 4` = c(F, F, F, F, T, T, F, F, T, T, F))
ggplot(d, aes(A = `Set 1`, B = `Set 2`))
geom_venn()
theme(text = element_text(size=20, family="Comic Sans MS"))
coord_fixed()

我也試過 ggVennDiagram
library(ggVennDiagram)
genes <- paste("gene",1:1000,sep="")
set.seed(20210419)
x <- list(A=sample(genes,300),
B=sample(genes,525))
ggVennDiagram(x)
scale_fill_gradient(low="blue",high = "red")
theme(text = element_text(size=20, family="Comic Sans MS"),
axis.text = element_text(size=20, family="Comic Sans MS"),)

uj5u.com熱心網友回復:
我不確定這是否可以直接在ggvenn. 以下函式將允許您在創建繪圖后更改文本標簽的字體:
venn_font <- function(p, font)
{
grep_grob <- function(gt, lab){
which(sapply(gt, function(x) grepl(lab, x$name)))
}
p2 <- ggplot_gtable(ggplot_build(p))
mygrobs <- p2$grobs
panel_grob <- mygrobs[[grep_grob(mygrobs, "panel")]]
venn_grob <- panel_grob$children[[grep_grob(panel_grob$children, "venn")]]
text_grob <- venn_grob$children[grep_grob(venn_grob$children, "text")]
text_grob <- do.call(grid::gList,
lapply(text_grob,
function(x) {x$gp$fontfamily <- font;
x}))
venn_grob$children[grep_grob(venn_grob$children, "text")] <- text_grob
panel_grob$children[[grep_grob(panel_grob$children, "venn")]] <- venn_grob
mygrobs[[grep_grob(mygrobs, "panel")]] <- panel_grob
p2$grobs <- mygrobs
grid::grid.newpage()
grid::grid.draw(p2)
}
因此,對其進行測驗(感謝 manro 提供示例資料):
library(ggvenn)
d <- tibble(value = c(1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13),
`Set 1` = c(T, F, T, T, F, T, F, T, F, F, F),
`Set 2` = c(T, F, F, T, F, F, F, T, F, F, T),
`Set 3` = c(T, T, F, F, F, F, T, T, F, F, F),
`Set 4` = c(F, F, F, F, T, T, F, F, T, T, F))
p <- ggplot(d, aes(A = `Set 1`, B = `Set 2`))
geom_venn()
coord_fixed()
venn_font(p, font = "Comic Sans MS")

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/335780.html
上一篇:在R中使用ggplot2復制圖形
