Skip to content

geom_density with groups of 1 or 2 elements #2127

Closed
@LSanselme

Description

@LSanselme

Hello,

I am struggling with geom_density when groups consist on fewer than 3 elements.
For a group of 1 element, the density plot consists on a single line of length 1. For a group of 2 elements, this is a rectangle of height 0.5.
Since this does not depends on the y scale, the interpretation of the area under the curves breaks down. This problem becomes obvious when changing coordinates on the x axis (eg unit conversion).

This reproducible example illustrates my point.
This is the density of the measurements of Speed, for the 5 experiments. Each consists on 20 runs.

library(tidyverse)
library(MASS)

michelson %>%
  ggplot(aes(x = Speed, fill = Expt)) +
  geom_density(alpha = 0.5)

image

The density of the measurements, for the 5 experiments when we re-normalize the speed. As expected, the only changes are in the axis texts.

michelson %>%
  mutate(Speed = Speed / mean(Speed)) %>%
  ggplot(aes(x = Speed, fill = Expt)) +
  geom_density(alpha = 0.5)

image

The problem arises when the groups are small,
so we modify the data for the last group to consist on only two runs.

michelson_modif <- michelson
michelson_modif$Expt[83:100] <- 2

michelson_modif %>%
  ggplot(aes(x = Speed, fill = Expt)) +
  geom_density(alpha = 0.5)

image

michelson_modif %>%
  mutate(Speed = Speed / mean(Speed)) %>%
  ggplot(aes(x = Speed, fill = Expt)) +
  geom_density(alpha = 0.5)

image

The two graphs are no longer similar.

Do I miss something here? Is it possible to force the behaviour of geom_density to be similar (ie smooth curves) for all the groups, regardless of the number of elements in them?

Thanks a lot!

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugan unexpected problem or unintended behaviorlayers 📈

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions