【问题标题】:ggplot facet grid y axis some values are not visible how adjust gridggplot facet grid y轴有些值不可见如何调整网格
【发布时间】:2020-11-04 20:18:18
【问题描述】:

ggplot2 我正在尝试绘制散点图,但是在与分面网格合并时,一些值在 y 轴点附近看起来不完整,如何解决这个问题任何人都可以帮助我。

dummy <- data.frame(Value = c(rnorm(100, mean = 35, sd = 2),
                              rnorm(100, mean = 47, sd = 2),
                              rnorm(100, mean = 28, sd = 1)),
                    Method = c(rep("base", times = 100),
                               rep("new", times = 100),
                               rep("edge", times = 100)),
                    Subject = rep(paste0("M", seq_len(100)), times = 3))


library("ggplot2")
ggplot(dummy, aes(y=Value, x=Subject)) +
  geom_point(aes(shape=Method),size = 2.5) +
  facet_wrap(~ Method)

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    虽然使用expand 参数将是教科书的答案,但使用给定数据执行此操作的最明智的方法是使Subject 成为数字变量而不是因子。如果您不这样做,您的 x 轴标签将无可救药地重叠,并且您的底层面板网格会看起来很奇怪。

    Subject 与数字进行比较:

    ggplot(dummy, aes(y = Value, x = as.numeric(gsub("M", "", Subject)))) +
      geom_point(aes(shape=Method),size = 2.5) +
      facet_wrap(~ Method) +
      labs(x = "Subject")
    

    expand的角色对比:

    ggplot(dummy, aes(y = Value, x = Subject)) +
      geom_point(aes(shape = Method),size = 2.5) +
      facet_wrap(~ Method) +
      scale_x_discrete(expand = c(0.1, 0.1))
    

    我认为数字版本更容易阅读是很清楚的。

    【讨论】:

      【解决方案2】:

      你可以用 ggplot2::scale_x_discrete() 增加 X 轴的边距,只需尝试“add = 5”,直到你有你需要的东西

      library("ggplot2")
      
      ggplot2::ggplot(dummy, aes(y=Value, x=Subject)) +
        ggplot2::geom_point(aes(shape=Method),size = 2.5) +
        ggplot2::scale_x_discrete(expand = expand_scale(add = 5)) +
        ggplot2::facet_grid(~ Method, scales = "free")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-10
        • 2021-12-19
        相关资源
        最近更新 更多