我有兴趣在ggplot2中绘制一个包含逗号的自定义表达式,该表达式包含在一个绘图的一个方面上.我知道如何使用新的数据框在单个面上绘制表达式,如下所示:
fakedata <- data.frame(x = 1:10, y=runif(10), grp=gl(2,5))
ggplot(fakedata, aes(x=x,y,y)) + geom_point() + facet_grid(. ~ grp) +
geom_text(data=data.frame(x=5,y=0.5,grp=1,lab='a == 5'), aes(label=lab), parse=TRUE)
Run Code Online (Sandbox Code Playgroud)
我也知道如何使用annotation_custom在多个方面上绘制表达式,它可以容纳带逗号的表达式.但这不可能仅在单个方面进行绘图.
ggplot(fakedata, aes(x=x,y,y)) + geom_point() + facet_grid(. ~ grp) +
annotation_custom(grobTree(textGrob(expression(paste(a == 5, ', ', b == 6)), x=.5, y=.5)))
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何在单个构面上使用逗号对表达式执行操作,因为您无法在数据框中存储先前定义的表达式.如何在单个面上用逗号绘制表达式?
从?plotmath,你可以使用list()运营商:
'list(x,y,z)':以逗号分隔的列表
g0 + geom_text(data=data.frame(x=5,y=0.5,grp=1,lab='list(a == 5, b==6)'),
aes(label=lab), parse=TRUE)
Run Code Online (Sandbox Code Playgroud)