你如何在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()
我的 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()