如何解决ggplot2构面标签-不显示第二行 编辑:
我有一个脚本,用于生成带有多行带状文本的多面图。但是,这不再起作用了。以下是MWE,应从中解析带状文本,例如"bold(A)\nreally~long~extra"
至:
A
真的很长
您可以通过调试功能看到第二行。我什至提高了利润率,但无济于事...
有什么问题吗?
exmpl = data.frame(a = 1:100,b = rep(1:5,20),f = factor(rep(LETTERS[1:5],each = 20))) %>%
as_tibble() %>%
mutate(f2 = paste0("bold(",f,")\nreally~long~extra"))
ggplot(exmpl,aes(x = b,y = a)) +
facet_grid(. ~ f2,labeller = label_parsed) +
geom_point() +
theme(strip.text.x = element_text(size = 10,hjust = 0,margin = margin(.5,.5,"cm"),debug = T))
编辑:
在进行此操作时,我只想出了此解决方法,因为我以前使用label_bquote()
的解决方案不再起作用。请查看this other question,也许您也可以帮助我吗?
解决方法
不确定是否适合您。但是,达到预期结果的一种方法是使用ggtext
包,该包允许您使用HTML和CSS来设置方面标签的样式。为此,ggtext
引入了一个新的主题元素element_markdown
。试试这个:
library(ggplot2)
library(dplyr)
exmpl = data.frame(a = 1:100,b = rep(1:5,20),f = factor(rep(LETTERS[1:5],each = 20))) %>%
as_tibble() %>%
mutate(f2 = paste0("<b>",f,"</b><br>","really long extra"))
ggplot(exmpl,aes(x = b,y = a)) +
facet_grid(. ~ f2) +
geom_point() +
theme(strip.text.x = ggtext::element_markdown(size = 10,hjust = 0))
对于您先前帖子中的第二个问题,解决方案可能如下所示:
mylabel <- function(x) {
mutate(x,Species = paste0(letters[Species]," <i>",Species,"</i>"))
}
p <- ggplot(iris,aes(Sepal.Length,Sepal.Width)) + geom_point()
p + facet_grid(. ~ Species,labeller = mylabel) +
theme(strip.text.x = ggtext::element_markdown())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。