ggplot 包的构面选项不是为跨构面改变轴标签/比例而设计的(请参阅here https://stackoverflow.com/questions/11585954/varying-axis-labels-formatter-per-facet-in-ggplot-r以获得详细的解释),但在这种情况下,一种解决方法是改变不同方面的底层 x 轴变量的值,并设置scales = "free_x"
in facet_wrap()
这样每个方面的 x 轴中仅显示相关值:
library(ggplot2)
library(dplyr)
ggplot(data %>%
mutate(Validation = case_when(Validation == "Recursive" ~ "Recursive",
Method == "Method 1" ~ "100-iterations",
TRUE ~ "10-iterations")),
aes(x = Validation, y = Accuracy, fill = Scenario)) +
geom_boxplot() +
facet_wrap(~ Method, scales = "free_x")
Data:
set.seed(1)
data <- data.frame(
Method = rep(c("Method 1", "Method 2"), each = 100),
Validation = rep(c("Iterations", "Recursive"), times = 100),
Scenario = sample(c("Scenario 1", "Scenario 2", "Scenario 3"), 200, replace = TRUE),
Accuracy = runif(200)
)