你如何在ggplot中将文本放在不同的行上

how do you put text on different lines in ggplot

我的 df 是这样的:

 Product       Day      Month Total
Web Server, Applicatiion Server, Database Server, Middle Tier Tue 2015-01-01  10
Web Server, Application Server, Database Server, Middle Tier  Wed 2015-01-01    6
Web Server, Application Server, Database Server, Middle Tier  Wed 2015-02-01    6

我需要在 ggplot2 中创建一个热图,我需要在其中插入产品名称 geom_text。

到目前为止我有这个:

ggplot(cal, aes(x=Month, y=Day, fill=Total)) +
   geom_tile() +
   scale_fill_gradient2(high="red",mid="green",low="yellow", 
       na.value="white", midpoint=mean(cal$Total, na.rm=T))+scale_x_date(labels = date_format("%b-%Y"), breaks = date_breaks("month"))+
       geom_text(aes(label=Product))

发生的事情是因为有多个产品名称用逗号分隔,当我执行 geom_text (aes(label=Product)) 时,文本会写在彼此之上。

是否可以将每个产品名称放在不同的行中?

只需在 "Product" 标签中需要换行的地方添加 "\n"

library(ggplot2)
df <- data.frame(
  label=c("bla \n foo", "first line \n second line"),
  x = c(1, 2), y =c(1,2))
ggplot(df, aes(x=x, y=y, label=label)) + geom_text()