如何在 face_grid-like 结构中按列固定比例?
How to fix scales by columns in a face_grid-like construction?
我知道 facet_grid
不允许在行或列内自由缩放。所以我用 facet_wrap
试试运气。
除了我目前所拥有的,
data <- data.frame(
cols = c("A", "A", "A", "A", "B", "B", "B", "B"),
rows = c(1, 1, 2, 2, 1, 1, 2, 2),
x = c(0, 90, 0, 110, 0, 900, 0, 1100),
y = c(0, 90, 0, 110, 0, 900, 0, 1100)
)
library(ggplot2)
p <- ggplot(data, aes(x = x, y = y)) +
geom_line() +
facet_wrap(~ rows + cols, scales = "free")
如何固定列中的水平刻度(阅读:每列分别)?也就是说,如何让水平[0, 75]轴与水平[0, 90]轴对齐,水平[0, 750]轴与水平[0, 900]轴对齐?
理想情况下,这会隐藏除最后一行以外的所有横轴标签。
如果你敢尝试 github 包,我最近在 ggh4x 包的开发版本中添加了 facet_grid()
的扩展版本(免责声明:我编写了包)。它区分 'free' 的比例 - 可以在行/列之间变化 - 与 'independent' 和自由的比例,它们也可以在行/列内变化。我想这些函数非常适合您的问题。
library(ggplot2)
library(ggh4x) # devtools::install_github("teunbrand/ggh4x")
data <- data.frame(
cols = c("A", "A", "A", "A", "B", "B", "B", "B"),
rows = c(1, 1, 2, 2, 1, 1, 2, 2),
x = c(0, 90, 0, 110, 0, 900, 0, 1100),
y = c(0, 90, 0, 110, 0, 900, 0, 1100)
)
library(ggplot2)
ggplot(data, aes(x = x, y = y)) +
geom_line() +
facet_grid2(rows ~ cols, scales = "free", independent = "y")
由 reprex package (v1.0.0)
于 2021-04-16 创建
由于我上周左右才添加该功能并且尚未进行广泛测试,如果您发现任何错误或有改进建议,请告诉我。
我知道 facet_grid
不允许在行或列内自由缩放。所以我用 facet_wrap
试试运气。
除了我目前所拥有的,
data <- data.frame(
cols = c("A", "A", "A", "A", "B", "B", "B", "B"),
rows = c(1, 1, 2, 2, 1, 1, 2, 2),
x = c(0, 90, 0, 110, 0, 900, 0, 1100),
y = c(0, 90, 0, 110, 0, 900, 0, 1100)
)
library(ggplot2)
p <- ggplot(data, aes(x = x, y = y)) +
geom_line() +
facet_wrap(~ rows + cols, scales = "free")
如何固定列中的水平刻度(阅读:每列分别)?也就是说,如何让水平[0, 75]轴与水平[0, 90]轴对齐,水平[0, 750]轴与水平[0, 900]轴对齐?
理想情况下,这会隐藏除最后一行以外的所有横轴标签。
如果你敢尝试 github 包,我最近在 ggh4x 包的开发版本中添加了 facet_grid()
的扩展版本(免责声明:我编写了包)。它区分 'free' 的比例 - 可以在行/列之间变化 - 与 'independent' 和自由的比例,它们也可以在行/列内变化。我想这些函数非常适合您的问题。
library(ggplot2)
library(ggh4x) # devtools::install_github("teunbrand/ggh4x")
data <- data.frame(
cols = c("A", "A", "A", "A", "B", "B", "B", "B"),
rows = c(1, 1, 2, 2, 1, 1, 2, 2),
x = c(0, 90, 0, 110, 0, 900, 0, 1100),
y = c(0, 90, 0, 110, 0, 900, 0, 1100)
)
library(ggplot2)
ggplot(data, aes(x = x, y = y)) +
geom_line() +
facet_grid2(rows ~ cols, scales = "free", independent = "y")
由 reprex package (v1.0.0)
于 2021-04-16 创建由于我上周左右才添加该功能并且尚未进行广泛测试,如果您发现任何错误或有改进建议,请告诉我。