ggplot2使用轴变量以外的度量单位进行注释

时间:2013-05-17 01:46:00

标签: r ggplot2

您好我有以下代码

d1=data.frame(a=c(4,5,6,7),b=as.Date(c('2005-12-31','2006-12-31','2007-12-31','2008-12-31'),"%Y-%m-%d"))
a = ggplot(d1,aes(x=b,y=a)) + geom_line()
a + annotate('text',x=as.Date('2006-12-31','%Y-%m-%d'),y=5.5,label='blah')

但是注释图表真的很笨重。我希望能够使用轴的百分比(例如)或英寸或其他来指定x轴。这有可能,我该怎么做呢?

由于

2 个答案:

答案 0 :(得分:2)

我认为您唯一的选择是使用网格对图表进行后处理。您需要公开视口并导航到绘图面板,然后您可以访问所有网格单元。关注Paul Murrell's example:

library(ggplot2)
library(grid)

qplot(1:10, rnorm(10))
# grid.force() # doesn't seem necessary?
# grid.ls()

downViewport("panel.3-4-3-4")
grid.text(label = "Some text", x = unit(0,"inch"),hjust=0)
grid.text(label = "Some text", x = unit(0.5,"npc"),hjust=0.5)
upViewport(0)

答案 1 :(得分:1)

包'scale'包含大量格式化程序选项:例如要将示例中的y轴格式化为百分比,请使用“scale_y_continuous(labels = percent)”

require(ggplot2)
require(scales)

d1=data.frame(a=c(4,5,6,7),b=as.Date(c('2005-12-31','2006-12-31','2007-12-31','2008-12-   31'),"%Y-%m-%d"))
a = ggplot(d1,aes(x=b,y=a)) + geom_line() + scale_y_continuous(labels = percent) 
a + annotate('text',x=as.Date('2006-12-31','%Y-%m-%d'),y=5.5,label='blah') 

同时查看ggplot docs