ggplot2中的斜体和换行

4
我试图使用scale_x_discrete来适应带斜体n和换行符的标题。这里有一个使用mpg的示例。如果不尝试获取斜体,则制造商名称将出现在标记下方居中,n =行将居中于其下方。这正是我想要的。我无法通过bquote或expression产生斜体来重现它。由于斜体n是标题中最常见的符号之一,我认为我正在忽略某些明显的东西。请问有人能帮忙吗?
mpg2<- subset(mpg, manufacturer %in% c("audi", "toyota"))
mpg3<- subset(mpg2, class %in% c("compact", "midsize"))

cbp <- c("#E69F00", "#56B4E9")
xsub1 <-bquote(paste("Audi\n", italic("n"), " = 18 (15, 3)"))
xsub2 <-bquote(paste("Toyota\n", italic("n"), " = 19 (12, 7)"))


ggplot (mpg3, aes (x=manufacturer, y=hwy, colour=class))+
  geom_boxplot()+
  labs (colour = NULL)+
  xlab("")+
  ylab("highway mpg")+
  scale_colour_manual (labels = c ("compact","midsize"),
                        values = c(cbp))+
  scale_x_discrete(labels=c(xsub1, xsub2)) +
  theme (legend.position = "bottom")
1个回答

4
你可以使用atop()函数。
mpg2 <- subset(mpg, manufacturer %in% c("audi", "toyota"))
mpg3 <- subset(mpg2, class %in% c("compact", "midsize"))

cbp <- c("#E69F00", "#56B4E9")

xsub1 <- ~ atop(paste("Audi"), paste(italic("n"), " = 18 (15, 3)"))
xsub2 <- ~ atop(paste("Toyota"), paste(italic("n"), " = 19 (12, 7)"))

ggplot(mpg3, aes (x = manufacturer, y = hwy, colour=class))+
  geom_boxplot()+
  labs (colour = NULL)+
  xlab("")+
  ylab("highway mpg")+
  scale_colour_manual(labels = c("compact","midsize"), values = c(cbp))+
  scale_x_discrete(labels = c(xsub1, xsub2)) +
  theme (legend.position = "bottom")

enter image description here

解决方案来自@Jaap


到目前为止,在我需要的所有情况下,它都非常有效:非常感谢。 - Nigel Haywood
1
我被要求避免像“谢谢,@Tung:”这样的评论,但还是感谢! - Nigel Haywood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接