Ric*_*nus 6 r ggplot2 facet-wrap
是否可以为ggplot2中使用的每个变量设置独立的条带主题facet_wrap?
以这段代码为例:
p1 <- ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(c("cyl", "drv"), labeller = "label_both")
plot(p1)
Run Code Online (Sandbox Code Playgroud)
我希望上面的条带('cyl')具有不同的主题 - 比方说,用粗体.另外,我可能想制作'drv'斜体并使用不同的字体类型和大小.我怎么能这样做?
我正在考虑以下几点:
p1 <- p1 + theme(strip.text.variable1 = element_text(face = 'bold'),
strip.text.variable2 = element_text(face = 'italic', size = 8)
)
Run Code Online (Sandbox Code Playgroud)
不幸的是,我在文档或之前的问题中找不到这样的内容.
干杯
编辑:我提出了一个更普遍的问题,以进一步帮助社区.
表面上你应该能够创建一个基于label_both返回粗体标签的新函数,但到目前为止我的尝试已经以可怕的Error in variable[[i]] : subscript out of bounds.
另一种方法是构建一个函数来制作您想要的标签。这很像这个答案。在此函数中,您将前缀添加到变量的值中并将其设置为粗体。
make_labels = function(string, prefix = "cyl: ") {
x = paste0(prefix, as.character(string))
do.call(expression, lapply(x, function(y) bquote(bold(.(y)))))
}
Run Code Online (Sandbox Code Playgroud)
现在将此函数用于 中的as_labeller“cyl”变量facet_wrap。您想要更改其中的默认标签器as_labeller,label_parsed以便正确解析表达式。用于label_both其他变量。
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(c("cyl", "drv"),
labeller = labeller(cyl = as_labeller(make_labels, default = label_parsed),
drv = label_both))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
607 次 |
| 最近记录: |