我试图在ggplot2中创建的绘图下方显示一些有关数据的信息。我想使用绘图的X轴坐标来绘制N变量,但是Y坐标需要距屏幕底部10%。实际上,所需的Y坐标已作为y_pos变量存在于数据框中。我可以想到使用ggplot2的3种方法:1)在实际图下方创建一个空图,使用相同的比例,然后使用geom_text在空白图上绘制数据。这种方法虽然有效,但非常复杂。2)geom_text用于绘制数据,但以某种方式将y坐标用作屏幕的百分比(10%)。这将迫使数字显示在绘图下方。我不知道正确的语法。3)使用grid.text显示文本。我可以轻松地将其设置为距离屏幕底部10%的位置,但是我无法确定如何设置X坐标以匹配绘图。我尝试使用grconvert捕获初始X位置,但无法使其正常工作。下面是带有虚拟数据的基本图:graphics.off() # close graphics windows library(car)library(ggplot2) #load ggplotlibrary(gridExtra) #load Gridlibrary(RGraphics) # support of the "R graphics" book, on CRAN#create dummy datatest= data.frame( Group = c("A", "B", "A","B", "A", "B"), x = c(1 ,1,2,2,3,3 ), y = c(33,25,27,36,43,25), n=c(71,55,65,58,65,58), y_pos=c(9,6,9,6,9,6) )#create ggplotp1 <- qplot(x, y, data=test, colour=Group) + ylab("Mean change from baseline") + geom_line()+ scale_x_continuous("Weeks", breaks=seq(-1,3, by = 1) ) + opts( legend.position=c(.1,0.9))#display plotp1下面的修改后的gplot显示了对象的数量,但是它们在图中显示。它们迫使Y比例尺扩展。我想在图表下方显示这些数字。 p1 <- qplot(x, y, data=test, colour=Group) + ylab("Mean change from baseline") + geom_line()+ scale_x_continuous("Weeks", breaks=seq(-1,3, by = 1) ) + opts( plot.margin = unit(c(0,2,2,1), "lines"), legend.position=c(.1,0.9))+ geom_text(data = test,aes(x=x,y=y_pos,label=n))p1显示数字的另一种方法涉及在实际图的下方创建一个虚拟图这非常复杂,很难为不同的数据进行修改。理想情况下,我希望能够将Y坐标作为屏幕的百分比传递。
3 回答
- 3 回答
- 0 关注
- 1488 浏览
添加回答
举报
0/150
提交
取消