如何在 R 中自定义 Facet_Grid 字体标签
Posted
技术标签:
【中文标题】如何在 R 中自定义 Facet_Grid 字体标签【英文标题】:How to Customize Facet_Grid Font Label in R 【发布时间】:2021-12-27 12:38:36 【问题描述】:我有这个ggplot
和facet_grid
功能:
set.seed(1)
df <- data.frame(xx = 1:10, x1 = rnorm(10), x2 = rnorm(10), x3 = rnorm(10), x4 = rnorm(10), x5 = rnorm(10), x6 = rnorm(10), x7 = rnorm(10), x8 = rnorm(10), x9 = rnorm(10), x10 = rnorm(10), x11 = rnorm(10), x12 = rnorm(10))
library(dplyr)
library(tidyr)
library(ggplot2)
df %>%
pivot_longer(-xx) %>%
mutate(id = as.numeric(gsub("x", "", name))) %>%
arrange(id, xx) %>%
select(-id) %>%
mutate(sd = rep(rep(c(sd = 1, sd = 3, sd = 5, sd = 10), each = 10), each = 3),
phi = rep(rep(list(c(0.4, 0.4), c(0.45, 0.45), c(0.35, 0.6)), each = 10), 4)) %>%
mutate(sd = factor(sd, levels = sd, labels = paste("sd =", sd)),
phi = factor(phi, levels = phi, labels = gsub("c", "", paste("\U03D5 =", phi)))) %>%
ggplot(aes(x = xx, y = value)) +
geom_line() +
geom_point() +
scale_y_continuous(expand = c(0.0, 0.00)) +
labs(x = "Time", y = "Series") +
facet_grid(sd ~ phi, scales = "free_y") +
theme_bw()
以satisfactory answer for this question 的形式提供。
我想要什么
我想增加(或自定义)右侧的标签 sd = c(sd = 1, sd = 3, sd = 5, sd = 10) 和顶部的标签 phi = c(0.4, 0.4) , c(0.45, 0.45), c(0.35, 0.6)) 的情节。还有,如何让它们加粗。
【问题讨论】:
【参考方案1】:最简单的方法是:
previous_code_blocks+
theme(strip.text.x = element_text(size = 10, face = "bold"),
strip.text.y = element_text(size = 10, face = "bold"))
您可以在此处使用通常的 element_text() 参数进行自定义,更改字体系列和其他类似的东西,hjust、vjust 等。
如果您希望将来对贴标机进行更多控制,或者需要更高级的定制,您可以在以下位置找到文档:https://ggplot2.tidyverse.org/reference/labeller.html
【讨论】:
以上是关于如何在 R 中自定义 Facet_Grid 字体标签的主要内容,如果未能解决你的问题,请参考以下文章
R:ggplot2:facet_grid:如何在少数(不是全部)标签中包含数学表达式?
R Shiny DT::renderDataTable ...如何在下载的表格中自定义标题
R语言ggplot2可视化使用facet_grid构建多个子图(facet面图)并自定义每个子图(facet面图)的文本实战