如何在x或y轴标签周围绘制框/边框?

时间:2017-07-15 23:38:19

标签: r ggplot2 border axes

在R中是否有办法在x或y轴标签周围绘制框/边框,可能是有角度的标签?

我一直在使用ggplot创建平铺图表,并找到了在数据本身中放置标签的代码(通过geom_labelSet ggplot2 label background color,但不是围绕轴标签自己。

图表示例:

enter image description here

1 个答案:

答案 0 :(得分:5)

library(grid)

element_custom <- function() {
  structure(list(), class = c("element_custom", "element_text"))
}

element_grob.element_custom <- function(element, label="", ...)  {
  tg <- textGrob(label)
  padding <- unit(1,"line")
  rg <- rectGrob(width=grobWidth(tg)+padding, height=grobHeight(tg)+padding)
  gTree(children=gList(rg, tg), height=grobHeight(tg) + padding, cl="custom_axis")
}

heightDetails.custom_axis <- function(x) x$height + unit(2,"mm") # fudge

ggplot(iris, aes(Sepal.Length, Sepal.Width)) +
  geom_line() + 
  labs(x= "Axis title")+
  (theme_grey() %+replace% theme(axis.title.x = element_custom()))

enter image description here