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

时间:2015-01-21 17:21:42

标签: r ggplot2

我的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))时,文本会相互堆叠。

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

1 个答案:

答案 0 :(得分:8)

只需将"\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()

enter image description here