在 R 中使用 ggplot 和 patchwork 更改坐标轴标签和比例
Change axes label and scale using ggplot and patchwork in R
(我试图让这个问题尽可能简短,因为其他相关答案对于像我这样的非专业人士来说可能很难回答。)
考虑到以下代码,是否可以让两个 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")
您可以向您的函数添加两个额外的参数,一个用于轴标签,一个用于您想要的限制。
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")
从宽到长重塑形状,然后使用小平面。我们将使用小平面标签代替不同的 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))
(我试图让这个问题尽可能简短,因为其他相关答案对于像我这样的非专业人士来说可能很难回答。)
考虑到以下代码,是否可以让两个 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")
您可以向您的函数添加两个额外的参数,一个用于轴标签,一个用于您想要的限制。
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")
从宽到长重塑形状,然后使用小平面。我们将使用小平面标签代替不同的 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))