给定一个ggplot2对象,我可以检测轴是否是离散的吗?

时间:2017-08-08 17:51:48

标签: r ggplot2

根据下面的gg对象或gg_b对象,是否可以针对每个轴检测映射到轴上的变量是否是离散的?

library(ggplot2)
library(dplyr)

gg <- 
  mtcars %>%
  ggplot(aes(factor(cyl), hp)) +
  geom_point()

gg_b <- ggplot_build(gg)

我希望能够做到这一点,作为支持图形组织风格的一部分。

解决方案(ht / baptiste)

has_discrete_axis <-
  function(gg) {
    gg_b <- ggplot2::ggplot_build(gg)
    lapply(gg_b$layout$panel_scales, 
           function(s) inherits(s[[1]], "ScaleDiscrete"))
  }

1 个答案:

答案 0 :(得分:1)

试试这个

lapply(gg_b$layout$panel_scales, function(s) inherits(s[[1]], "ScaleDiscrete"))