如何对齐直方图和箱线图以便它们共享 x 轴?
How do I align a histogram and boxplot so that they share x-axis?
数据
wages
# A tibble: 1,472 x 3
wage educ exper
<dbl> <fct> <dbl>
1 7.78 1 23
2 4.82 1 15
3 10.6 1 31
4 7.04 1 32
5 7.89 1 9
6 8.20 1 15
7 8.21 1 26
8 10.4 1 23
9 11.0 1 13
10 7.21 1 22
# ... with 1,462 more rows
对齐直方图和箱线图
我正在尝试使用 cowplot
包对齐 wage
列的直方图和箱线图。我希望他们共享 x 轴,但值有点偏差。请参阅下面的代表:
library(tidyverse)
library(cowplot)
wages <- read_csv("http://vincentarelbundock.github.io/Rdatasets/csv/Ecdat/Bwages.csv") %>%
select(-X1, -sex) %>%
mutate(educ = factor(educ))
#> Warning: Missing column names filled in: 'X1' [1]
#>
#> -- Column specification --------------------------------------------------------
#> cols(
#> X1 = col_double(),
#> wage = col_double(),
#> educ = col_double(),
#> exper = col_double(),
#> sex = col_logical()
#> )
p1 <- ggplot(wages) +
geom_histogram(aes(x = wage)) +
geom_vline(xintercept = median(wages$wage), color = "red")
p2 <- ggplot(wages) +
geom_boxplot(aes(x = wage))
plot_grid(p1, p2, ncol = 1, axis = "l", align = 'v')
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
由 reprex package (v1.0.0)
于 2021 年 2 月 27 日创建
如何让它们完美共享x轴?
只需在每个 ggplot 调用中添加 xlim(0,50)
。
您不仅应该设置限制,还应该设置扩展范围(到 none)和中断:
p1 <- p1 +
scale_x_continuous(limits= c(0,50), expand = c(0, 0), breaks = c(0,10,20,30,40,50))
p2 <- p2+
scale_x_continuous(limits= c(0,50), expand = c(0, 0), breaks = c(0,10,20,30,40,50))
plot_grid(p1, p2, ncol = 1, axis = "l", align = 'v')
数据
wages
# A tibble: 1,472 x 3
wage educ exper
<dbl> <fct> <dbl>
1 7.78 1 23
2 4.82 1 15
3 10.6 1 31
4 7.04 1 32
5 7.89 1 9
6 8.20 1 15
7 8.21 1 26
8 10.4 1 23
9 11.0 1 13
10 7.21 1 22
# ... with 1,462 more rows
对齐直方图和箱线图
我正在尝试使用 cowplot
包对齐 wage
列的直方图和箱线图。我希望他们共享 x 轴,但值有点偏差。请参阅下面的代表:
library(tidyverse)
library(cowplot)
wages <- read_csv("http://vincentarelbundock.github.io/Rdatasets/csv/Ecdat/Bwages.csv") %>%
select(-X1, -sex) %>%
mutate(educ = factor(educ))
#> Warning: Missing column names filled in: 'X1' [1]
#>
#> -- Column specification --------------------------------------------------------
#> cols(
#> X1 = col_double(),
#> wage = col_double(),
#> educ = col_double(),
#> exper = col_double(),
#> sex = col_logical()
#> )
p1 <- ggplot(wages) +
geom_histogram(aes(x = wage)) +
geom_vline(xintercept = median(wages$wage), color = "red")
p2 <- ggplot(wages) +
geom_boxplot(aes(x = wage))
plot_grid(p1, p2, ncol = 1, axis = "l", align = 'v')
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
由 reprex package (v1.0.0)
于 2021 年 2 月 27 日创建如何让它们完美共享x轴?
只需在每个 ggplot 调用中添加 xlim(0,50)
。
您不仅应该设置限制,还应该设置扩展范围(到 none)和中断:
p1 <- p1 +
scale_x_continuous(limits= c(0,50), expand = c(0, 0), breaks = c(0,10,20,30,40,50))
p2 <- p2+
scale_x_continuous(limits= c(0,50), expand = c(0, 0), breaks = c(0,10,20,30,40,50))
plot_grid(p1, p2, ncol = 1, axis = "l", align = 'v')