1

嗨,我有以下代码

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 轴。这可能吗?我该怎么做?

谢谢

4

2 回答 2

2

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

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)
于 2013-05-17T12:25:38.283 回答
1

'scales' 包包含大量格式化程序选项:例如,将示例中的 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 文档

于 2013-05-17T15:30:27.147 回答