如何创建一个合适的geom_boxplot?

时间:2018-09-04 21:40:05

标签: r ggplot2 boxplot

我正在尝试创建常规的箱形图,但是却得到了一个奇怪的虚线图。

您能告诉我我做错了什么以及如何纠正吗?

非常感谢您。

box_plot <- comb_rpt %>% 
filter(!is.na(oracle_contract_desc.x), 
     service_mnth %in% c('2018-01', '2018-02', '2018-03', '2018-04',
                         '2018-05', '2018-06', '2018-07')) %>% 
ggplot(aes(x = service_mnth, y = var_est_to_actual)) +
geom_boxplot()

我的怪异箱形图看起来像一个点:

img

正确的Boxplot看起来像一个实际的盒子,带有颜色填充

img

1 个答案:

答案 0 :(得分:2)

我的猜测是,每个0的{​​{1}}中有var_est_to_actual个。

让我们复制“问题”。

首先,我们从一个广泛的法线生成数据并显示箱线图。

service_mnth

enter image description here

我们现在将set.seed(2018) df <- setNames(data.frame( rnorm(100, sd = 100), rnorm(100, sd = 100)), c("2018-01", "2018-02")) library(tidyverse) df %>% gather(service_mnth, var_est_to_actual) %>% ggplot(aes(service_mnth, var_est_to_actual)) + geom_boxplot() 中每个service_mnth的观测值中的70%替换为0,并再次显示修改后的数据的箱线图。

df %>%
    gather(service_mnth, var_est_to_actual) %>%
    group_by(service_mnth) %>%
    mutate(frac = (1:n()) / n()) %>%
    mutate(var_est_to_actual = if_else(frac < 0.7, 0, var_est_to_actual)) %>%
    ggplot(aes(service_mnth, var_est_to_actual)) +
    geom_boxplot()

enter image description here

请注意与您显示的箱线图相似。