我試圖在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 回答
- 0 關注
- 1529 瀏覽
添加回答
舉報
0/150
提交
取消