нарисуйте только контур нескольких гистограмм в ggplot, чтобы четко визуализировать

#r #ggplot2

Вопрос:

Ниже приведен код для создания двух гистограмм. Но из-за значительного перекрытия трудно четко видеть каждое разделение.

Как я могу построить только более толстый контур каждой гистограммы и удалить вертикальные линии/полосы.

введите описание изображения здесь

Желательная гистограмма должна выглядеть так —

введите описание изображения здесь

 library(tidyverse)

A <- rnorm(n = 1000, mean = 0, sd = 1)
B <- rnorm(n = 1000, mean = 0.1, sd = 1.3)

tbl <- tibble(A, B) %>%
  # pivot longer
  pivot_longer(cols = everything(),
               names_to = "Distributions",
               values_to = "values")

ggplot(data = tbl,
       aes(x = values,
           col = Distributions,
           fill = Distributions))   
  geom_histogram(bins = 50,
                 alpha = 0.3,
                 position = "identity")   
  theme_bw()
 

Ответ №1:

Вы можете объединить гистограмму без полей со geom_step() слоем для контура.

 library(tidyverse)
#> Warning: package 'tibble' was built under R version 4.1.1
#> Warning: package 'readr' was built under R version 4.1.1

A <- rnorm(n = 1000, mean = 0, sd = 1)
B <- rnorm(n = 1000, mean = 0.1, sd = 1.3)

tbl <- tibble(A, B) %>%
  # pivot longer
  pivot_longer(cols = everything(),
               names_to = "Distributions",
               values_to = "values")

ggplot(data = tbl,
       aes(x = values,
           col = Distributions,
           fill = Distributions))   
  geom_step(
    stat = "bin", bins = 50,
    direction = "mid"
  )  
  geom_histogram(
    bins = 50, alpha = 0.3, colour = NA,
    position = "identity"
  )
 

Создано 2021-09-24 пакетом reprex (v2.0.1)