由於採用了最新ggplot2
使用gtable
內部,這是很容易修改一個數字:
library(ggplot2)
test <- data.frame(x=1:20, y=21:40,
facet.a=rep(c(1,2),10),
facet.b=rep(c(1,2), each=20))
p <- qplot(data=test, x=x, y=y, facets=facet.b~facet.a)
# get gtable object
z <- ggplotGrob(p)
library(grid)
library(gtable)
# add label for right strip
z <- gtable_add_cols(z, unit(z$widths[[7]], 'cm'), 7)
z <- gtable_add_grob(z,
list(rectGrob(gp = gpar(col = NA, fill = gray(0.5))),
textGrob("Variable 1", rot = -90, gp = gpar(col = gray(1)))),
4, 8, 6, name = paste(runif(2)))
# add label for top strip
z <- gtable_add_rows(z, unit(z$heights[[3]], 'cm'), 2)
z <- gtable_add_grob(z,
list(rectGrob(gp = gpar(col = NA, fill = gray(0.5))),
textGrob("Variable 2", gp = gpar(col = gray(1)))),
3, 4, 3, 6, name = paste(runif(2)))
# add margins
z <- gtable_add_cols(z, unit(1/8, "line"), 7)
z <- gtable_add_rows(z, unit(1/8, "line"), 3)
# draw it
grid.newpage()
grid.draw(z)
當然,您可以編寫一個自動添加條形標籤的功能。未來版本的ggplot2
可能具有此功能;不確定。
聖牛。我只是* *正在尋找這個,通過谷歌找到這個...現在看到它被問了一分鐘前。 [這個問題](http:// stackoverflow。com/questions/9096671/add-a-secondary-y-axis-to-ggplot2-plots-make-it-perfect)似乎是基於他的評論詢問同樣的事情,儘管可能暗示其他標題。偉大的模型來說明。這正是我的問題 - 如果我不必解釋我的數字分面類別,那就好了。該圖應該用一個簡單的標籤來說明自己的面部變量是什麼。 – Hendy 2012-07-05 22:19:36
我問過一個[類似的問題。](http://stackoverflow.com/q/7603949/707145) – MYaseen208 2012-07-05 23:00:39
我詢問了溫斯頓張(不知道他的SO手柄),ggplot的主要開發人員之一,通過電子郵件。他不認爲這是目前的選擇,但可以考慮添加它。他建議我在github上添加一個問題,[所以我](https://github.com/hadley/ggplot2/issues/612) – Hendy 2012-07-06 16:37:02