【问题标题】:Change axes label and scale using ggplot and patchwork in R在 R 中使用 ggplot 和拼凑更改轴标签和比例
【发布时间】:2022-01-19 10:24:28
【问题描述】:

(我试图让这个问题尽可能简短,因为其他相关的答案对于像我这样的非精明的人来说可能很难。)

考虑到下面的代码,是否可以让两个 y 轴在相同的尺度上(具有最高 y 限制的图形的尺度),并且每个轴都有独立的标签(即 y -轴)?我尝试使用facet_wrap,但到目前为止还没有像Layer 1 is missing那样成功)

library(ggplot2)
library(patchwork)
d <- cars
d$Obs <- c(1:50)
f1 <- function(a) {
  ggplot(data=d, aes_string(x="Obs", y=a)) +
    geom_line() +
    labs(x="Observation",y="Speed/Distance")
}
f1("speed") + f1("dist") 

【问题讨论】:

    标签: r ggplot2 scale axis-labels patchwork


    【解决方案1】:

    您可以为函数添加两个额外的参数,一个用于轴标签,一个用于您想要的限制。

    library(ggplot2)
    library(patchwork)
    d <- cars
    d$Obs <- c(1:50)
    
    f1 <- function(a, y_lab) {
      ggplot(data = d, aes_string(x = "Obs", y = a)) +
        geom_line() +
        scale_y_continuous(limits = range(c(d$speed, d$dist))) +
        labs(x = "Observation", y = y_lab)
    }
    
    f1("speed", "Speed") + f1("dist", "Distance")
    

    【讨论】:

      【解决方案2】:

      从宽到长重塑,然后使用刻面。我们将使用分面标签,而不是使用不同的 y 轴标签:

      library(ggplot2)
      library(tidyr)
      
      pivot_longer(d, 1:2, names_to = "grp") %>% 
        ggplot(aes(x = Obs, y = value)) +
        geom_line() +
        facet_wrap(vars(grp))
      

      【讨论】:

        猜你喜欢
        • 2021-11-17
        • 1970-01-01
        • 2021-08-19
        • 1970-01-01
        • 2020-10-27
        • 2021-12-07
        • 1970-01-01
        • 1970-01-01
        • 2020-08-27
        相关资源
        最近更新 更多