Search code examples
rhistogram

Histogram bars are stacking on top of each and not aligning with x-axis?


Can someone help me figure out why when I add the legend to my histogram plot the bars are split in colour horizontally (and not just the bars being split), and why are the bars not lining up with the x-axis numbers? The bars should not be centered on top of a number, rather, the edge of the bar should line up with the tick marks.

I have tried changing the number of bins to make the colours more spread out to avoid bar colour splitting, as well as to line up the bars with the tick marks of the x-axis but it makes no difference...I also played around a lot with the scales but it made no difference.

Code and image below:

quants.head <- quantile(df.mini$Headwidth, probs=c(0,0.25,0.5,0.75,1))
quants.head

df.mini$Size.Quantile.Head <- cut(df.mini$Headwidth, breaks=quants.head,
                             labels=c("0-25%","25-50%","50-75%","75-100%"),
                             include.lowest=TRUE)

ggplot(df.mini, aes(Headwidth, fill=Size.Quantile.Head)) +
  geom_histogram(position="stack", alpha=0.6, color="black", bins=10) +
  scale_x_continuous(breaks=seq(0, 6, 1)) +
  scale_y_continuous(expand=c(0,0), limits=c(0,500)) + theme_bw() +
  labs(x="Head width (mm)", y="Frequency") +
  theme(axis.title.x = element_text(size=12),
        axis.text.x = element_text(size=12),
        axis.title.y = element_text(size=12),
        axis.text.y = element_text(size=12)) +
  scale_fill_brewer(palette="Dark2", name="Quantile Range")


> dput(df.mini)
structure(list(Headwidth = c(1.93125, 1.751, 1.87975, 1.67375, 
1.5965, 1.67375, 1.87975, 1.6995, 1.751, 1.77675, 2.871, 2.97, 
2.904, 3.036, 2.871, 2.163, 1.854, 2.838, 3.003, 1.6995, 2.871, 
2.97, 3.135, 2.871, 2.838, 2.904, 2.739, 2.871, 3.069, 3.102, 
2.904, 2.772, 2.871, 2.739, 2.266, 1.98275, 2.838, 2.838, 2.0085, 
1.82825, 2.937, 2.97, 1.67375, 3.135, 3.036, 2.871, 2.904, 2.1115, 
1.82825, 3.003, 3.102, 2.904, 3.036, 2.937, 2.904, 2.904, 2.871, 
2.706, 3.003, 3.036, 3.003, 1.957, 2.937, 2.904, 2.838, 2.904, 
2.838, 3.036, 3.069, 2.574, 2.904, 2.937, 2.937, 3.036, 2.739, 
1.87975, 2.673, 1.9055, 1.957, 1.957, 2.97, 1.98275, 1.98275, 
2.06, 1.93125, 2.97, 3.036, 1.93125, 1.77675, 2.03425, 2.904, 
2.805, 3.003, 3.003, 2.97, 3.003, 2.871, 2.739, 2.97, 2.805, 
2.706, 1.854, 1.93125, 2.739, 3.003, 2.97, 3.135, 2.805, 2.838, 
2.937, 2.904, 2.937, 1.93125, 2.739, 2.06, 2.871, 3.40956, 3.71952, 
2.838, 1.9055, 2.805, 2.13725, 2.706, 3.51288, 2.805, 2.805, 
2.97, 2.937, 2.97, 2.97, 3.102, 2.937, 3.036, 2.97, 3.036, 2.937, 
3.003, 3.102, 2.805, 2.871, 2.838, 3.135, 3.069, 2.937, 2.904, 
3.069, 2.97, 2.97, 3.66786, 2.739, 2.937, 3.135, 2.838, 2.805, 
2.937, 2.937, 2.772, 2.904, 2.871, 3.003, 2.838, 2.937, 3.003, 
3.71952, 2.937, 2.739, 3.56454, 2.904, 3.30624, 1.751, 2.03425, 
3.6162, 2.541, 1.82825, 2.0085, 3.6162, 3.77118, 1.82825, 3.71952, 
2.937, 2.0085, 1.6995, 2.805, 1.8025, 2.937, 3.003, 2.739, 2.03425, 
1.98275, 1.98275, 3.102, 2.904, 2.871, 2.673, 3.069, 2.904, 2.904, 
2.97, 2.871, 2.739, 2.475, 3.40956, 2.97, 3.51288, 2.871, 2.838, 
2.937, 3.71952, 1.82825, 2.97, 3.036, 3.102, 2.2145, 1.9055, 
2.08575, 2.13725, 2.2145, 1.957, 1.9055, 1.98275, 1.87975, 1.93125, 
3.003, 2.871, 2.97, 3.036, 3.102, 2.871, 3.82284, 2.97, 2.937, 
2.871, 2.937, 2.97, 2.871, 2.937, 2.871, 3.102, 3.003, 2.97, 
3.71952, 2.673, 3.069, 2.937, 2.772, 2.739, 2.673, 2.871, 2.871, 
2.772, 2.97, 3.036, 2.838, 4.02948, 3.51288, 3.77118, 3.66786, 
4.18446, 3.6162, 2.937, 3.71952, 2.904, 3.135, 2.97, 3.003, 3.036, 
2.0085, 3.102, 2.739, 2.97, 2.97, 3.56454, 3.6162, 3.66786, 3.71952, 
3.71952, 3.82284, 3.66786, 2.871, 2.904, 2.97, 2.772, 2.97, 3.069, 
3.069, 2.97, 2.805, 3.15126, 2.706, 3.069, 3.036, 3.069, 2.97, 
2.937, 2.904, 2.838, 2.805, 3.77118, 2.904, 2.805, 2.772, 2.739, 
2.871, 1.67375, 3.036, 2.937, 4.02948, 2.805, 3.003, 2.904, 3.003, 
3.66786, 2.904, 3.56454, 3.8745, 3.71952, 4.1328, 3.66786, 3.92616, 
3.92616, 3.77118, 2.838, 2.06, 3.66786, 2.871, 2.97, 3.003, 3.6162, 
3.77118, 3.30624, 4.23612, 3.46122, 3.6162, 3.6162, 3.77118, 
3.97782, 2.838, 3.77118, 3.3579, 2.739, 3.003, 2.937, 2.871, 
3.036, 2.871, 2.937, 2.871, 2.772, 2.97, 3.8745, 2.937, 2.937, 
3.6162, 3.46122, 4.02948, 3.66786, 3.56454, 4.08114, 3.92616, 
3.82284, 3.003, 2.706, 2.937, 2.99628, 2.64, 2.97, 3.97782, 3.82284, 
3.97782, 3.66786, 3.6162, 4.1328, 3.66786, 2.904, 2.871, 2.838, 
3.51288, 3.003, 3.036, 4.08114, 2.838, 4.1328, 4.02948, 2.97, 
2.805, 2.805, 3.77118, 3.003, 3.102, 4.1328, 3.8745, 3.003, 4.08114, 
1.9055, 2.871, 3.036, 3.77118, 3.6162, 3.3579, 3.003, 4.18446, 
2.937, 4.1328, 3.003, 3.92616, 2.97, 3.40956, 2.937, 4.18446, 
2.904, 3.6162, 3.71952, 2.99628, 3.71952, 2.805, 3.6162, 2.739, 
3.77118, 3.66786, 3.92616, 3.77118, 2.904, 4.18446, 3.66786, 
2.838, 3.036, 3.8745, 4.1328, 3.6162, 3.82284, 3.6162, 3.82284, 
3.8745, 3.8745, 2.871, 3.8745, 3.6162, 3.56454, 3.036, 3.66786, 
3.069, 3.56454, 4.08114, 3.92616, 3.71952, 3.8745, 2.904, 3.8745, 
2.904, 4.1328, 3.97782, 3.40956, 2.838, 2.772, 3.8745, 4.3911, 
2.838, 4.1328, 3.92616, 3.8745, 2.706, 3.92616, 2.838, 4.02948, 
2.937, 3.77118, 4.18446, 3.77118, 3.66786, 3.77118, 3.97782, 
3.82284, 2.871, 4.23612, 3.77118, 3.003, 2.97, 2.805, 2.838, 
3.8745, 3.66786, 4.02948, 2.838, 3.71952, 3.56454, 3.82284, 4.02948, 
3.71952, 4.1328, 4.02948, 2.904, 3.77118, 3.6162, 3.003, 4.08114, 
4.1328, 3.66786, 2.97, 3.97782, 4.08114, 3.003, 3.6162, 4.1328, 
4.1328, 3.66786, 3.8745, 4.1328, 2.871, 4.23612, 1.8025, 3.6162, 
3.71952, 3.92616, 3.3579, 3.92616, 3.40956, 3.82284, 3.6162, 
3.56454, 3.40956, 3.8745, 3.8745, 3.6162, 4.49442, 3.66786, 3.77118, 
2.805, 3.56454, 3.04794, 3.0996, 3.6162, 3.30624, 4.08114, 2.904, 
3.46122, 3.20292, 3.92616, 3.25458, 3.66786, 3.15126, 4.02948, 
3.40956, 1.72525, 3.0996, 3.71952, 2.871, 2.871, 2.904, 2.871, 
3.30624, 2.739, 4.28778, 4.1328, 2.904, 3.82284, 4.1328, 2.739, 
3.51288, 3.66786, 3.036, 4.08114, 4.18446, 4.02948, 4.1328, 2.937, 
3.66786, 3.71952, 3.8745, 1.751, 4.02948, 3.56454, 3.92616, 2.739, 
3.82284, 3.82284, 3.6162, 4.08114, 3.0996, 4.18446, 3.82284, 
4.23612, 4.18446, 4.1328, 3.82284, 3.97782, 3.82284, 4.08114, 
4.1328, 4.08114, 3.82284, 4.02948, 3.71952, 3.71952, 3.82284, 
3.77118, 4.1328, 4.1328, 3.6162, 4.02948, 3.77118, 4.02948, 3.82284, 
3.71952, 4.08114, 3.8745, 3.71952, 3.71952, 4.18446, 3.97782, 
4.28778, 3.77118, 3.97782, 3.97782, 4.02948, 4.33944, 3.8745, 
3.6162, 3.8745, 3.77118, 4.08114, 4.02948, 4.18446, 3.71952, 
4.18446, 3.82284, 3.77118, 3.66786, 2.937, 3.77118, 4.1328, 4.23612, 
4.18446, 3.97782, 3.8745, 3.82284, 3.036, 4.1328, 3.56454, 3.069, 
3.77118, 4.3911, 3.71952, 3.77118, 4.3911, 4.28778, 3.6162, 3.97782, 
4.02948, 2.772, 4.02948, 2.937, 3.8745, 2.673, 3.036, 3.036, 
2.937, 2.1115, 3.56454, 3.15126, 3.20292, 3.40956, 3.30624, 3.15126, 
3.30624, 3.66786, 3.40956, 3.66786, 2.871, 2.97, 3.71952, 3.6162, 
3.46122, 3.20292, 3.66786, 3.40956, 3.8745, 2.904, 2.376, 2.99628, 
3.77118, 2.904, 2.13725, 2.904, 2.904, 3.46122, 3.6162, 3.56454, 
4.08114, 4.1328, 3.97782, 3.66786, 3.3579, 2.904, 2.871, 2.013, 
3.77118, 3.56454, 2.89296, 3.71952, 3.3579, 2.94462, 3.46122, 
3.3579, 4.02948, 3.8745, 3.30624, 3.71952, 3.8745, 3.25458, 3.46122, 
3.66786, 4.02948, 3.3579, 3.15126, 3.51288, 3.40956, 3.20292, 
3.46122, 2.99628, 3.46122, 3.25458, 3.56454, 3.20292, 3.56454, 
3.46122, 3.8745, 3.71952, 3.71952, 3.51288, 3.82284, 3.92616, 
3.20292, 3.82284, 3.3579, 3.25458, 3.25458, 3.51288, 3.0996, 
3.04794, 3.30624, 2.99628, 3.20292, 2.99628, 3.40956, 3.25458, 
3.8745, 2.772, 4.1328, 3.97782, 3.8745, 3.97782, 2.805, 3.8745, 
3.66786, 3.92616, 4.23612, 3.77118, 3.71952, 3.71952, 3.77118, 
3.6162, 4.28778, 2.838, 4.08114, 4.02948, 4.28778, 4.02948, 4.1328, 
3.8745, 4.18446, 3.97782, 3.8745, 4.02948, 3.82284, 3.3579, 2.937, 
4.08114, 4.02948, 3.46122, 3.6162, 3.97782, 3.82284, 3.66786, 
4.1328, 4.28778, 3.77118, 3.77118, 4.1328, 3.40956, 3.77118, 
3.82284, 3.8745, 3.56454, 3.82284, 3.77118, 3.77118, 3.82284, 
4.1328, 4.18446, 4.08114, 3.92616, 4.1328, 2.937, 3.3579, 4.02948, 
3.8745, 4.08114, 3.8745, 3.92616, 3.069, 3.46122, 3.97782, 3.8745, 
3.8745, 3.97782, 3.8745, 3.92616, 4.18446, 3.8745, 3.92616, 2.871, 
3.8745, 4.18446, 3.92616, 3.97782, 4.1328, 3.71952, 4.1328, 3.56454, 
4.02948, 4.08114, 3.6162, 4.1328, 4.18446, 3.6162, 4.1328, 4.1328, 
3.71952, 3.77118, 3.3579, 3.77118, 2.838, 4.28778, 4.23612, 3.46122, 
3.8745, 4.02948, 3.0996, 3.8745, 4.08114, 4.28778, 3.8745, 3.82284, 
4.1328, 4.1328, 4.02948, 4.23612, 3.82284, 3.135, 3.82284, 3.25458, 
3.8745, 3.97782, 3.036, 4.28778, 3.82284, 3.92616, 3.97782, 4.23612, 
2.805, 4.08114, 3.6162, 3.66786, 3.82284, 3.77118, 4.1328, 4.18446, 
3.8745, 3.40956, 3.46122, 4.02948, 4.08114, 4.28778, 3.82284, 
3.92616, 2.739, 2.904, 2.904, 3.77118, 3.46122, 2.739, 3.8745, 
3.6162, 3.92616, 3.97782, 4.02948, 3.8745, 3.92616, 3.82284, 
3.8745, 3.66786, 4.23612, 3.8745, 3.66786, 3.82284, 3.77118, 
3.6162, 3.8745, 4.1328, 4.02948, 3.92616, 3.77118, 3.97782, 4.23612, 
3.82284, 3.6162, 3.97782, 3.6162, 3.8745, 3.92616, 3.82284, 3.77118, 
3.8745, 3.71952, 4.08114, 4.28778, 3.97782, 3.8745, 4.1328, 4.08114, 
3.92616, 3.8745, 3.003, 3.56454, 2.97, 3.71952, 3.77118, 3.77118, 
3.8745, 4.08114, 4.1328, 3.8745, 4.18446, 3.66786, 2.838, 3.77118, 
4.18446, 3.6162, 3.8745, 3.71952, 4.02948, 3.71952, 4.08114, 
3.92616, 3.92616, 3.8745, 3.82284, 3.82284, 3.71952, 4.02948, 
3.82284, 3.82284, 3.82284, 4.08114, 4.02948, 3.92616, 3.77118, 
3.6162, 3.92616, 3.8745, 4.1328, 3.51288, 4.02948, 3.77118, 4.08114, 
3.8745, 3.77118, 4.08114, 3.8745, 3.66786, 3.8745, 3.97782, 3.97782, 
3.66786, 3.77118, 3.71952, 3.8745, 4.23612, 3.92616, 3.92616, 
3.92616, 3.6162, 4.02948, 4.18446, 3.82284, 3.6162, 3.77118, 
3.51288, 3.56454, 3.25458), Size.Quantile.Head = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 
1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 
2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 
1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 
1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 2L, 3L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 
2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 
2L, 2L, 2L, 3L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 
1L, 2L, 3L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 3L, 1L, 1L, 1L, 3L, 3L, 
1L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 
1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 3L, 1L, 
2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 
2L, 2L, 1L, 3L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 
1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 4L, 2L, 3L, 3L, 
4L, 3L, 1L, 3L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 3L, 
3L, 3L, 3L, 3L, 3L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 
2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
1L, 4L, 1L, 2L, 1L, 2L, 3L, 1L, 2L, 3L, 3L, 4L, 3L, 4L, 4L, 3L, 
1L, 1L, 3L, 1L, 2L, 2L, 3L, 3L, 2L, 4L, 2L, 3L, 3L, 3L, 4L, 1L, 
3L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 3L, 1L, 1L, 3L, 
2L, 4L, 3L, 2L, 4L, 4L, 3L, 2L, 1L, 1L, 2L, 1L, 2L, 4L, 3L, 4L, 
3L, 3L, 4L, 3L, 1L, 1L, 1L, 2L, 2L, 2L, 4L, 1L, 4L, 4L, 2L, 1L, 
1L, 3L, 2L, 2L, 4L, 3L, 2L, 4L, 1L, 1L, 2L, 3L, 3L, 2L, 2L, 4L, 
1L, 4L, 2L, 4L, 2L, 2L, 1L, 4L, 1L, 3L, 3L, 2L, 3L, 1L, 3L, 1L, 
3L, 3L, 4L, 3L, 1L, 4L, 3L, 1L, 2L, 3L, 4L, 3L, 3L, 3L, 3L, 3L, 
3L, 1L, 3L, 3L, 2L, 2L, 3L, 2L, 2L, 4L, 4L, 3L, 3L, 1L, 3L, 1L, 
4L, 4L, 2L, 1L, 1L, 3L, 4L, 1L, 4L, 4L, 3L, 1L, 4L, 1L, 4L, 1L, 
3L, 4L, 3L, 3L, 3L, 4L, 3L, 1L, 4L, 3L, 2L, 2L, 1L, 1L, 3L, 3L, 
4L, 1L, 3L, 2L, 3L, 4L, 3L, 4L, 4L, 1L, 3L, 3L, 2L, 4L, 4L, 3L, 
2L, 4L, 4L, 2L, 3L, 4L, 4L, 3L, 3L, 4L, 1L, 4L, 1L, 3L, 3L, 4L, 
2L, 4L, 2L, 3L, 3L, 2L, 2L, 3L, 3L, 3L, 4L, 3L, 3L, 1L, 2L, 2L, 
2L, 3L, 2L, 4L, 1L, 2L, 2L, 4L, 2L, 3L, 2L, 4L, 2L, 1L, 2L, 3L, 
1L, 1L, 1L, 1L, 2L, 1L, 4L, 4L, 1L, 3L, 4L, 1L, 2L, 3L, 2L, 4L, 
4L, 4L, 4L, 1L, 3L, 3L, 3L, 1L, 4L, 2L, 4L, 1L, 3L, 3L, 3L, 4L, 
2L, 4L, 3L, 4L, 4L, 4L, 3L, 4L, 3L, 4L, 4L, 4L, 3L, 4L, 3L, 3L, 
3L, 3L, 4L, 4L, 3L, 4L, 3L, 4L, 3L, 3L, 4L, 3L, 3L, 3L, 4L, 4L, 
4L, 3L, 4L, 4L, 4L, 4L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 3L, 4L, 3L, 
3L, 3L, 1L, 3L, 4L, 4L, 4L, 4L, 3L, 3L, 2L, 4L, 2L, 2L, 3L, 4L, 
3L, 3L, 4L, 4L, 3L, 4L, 4L, 1L, 4L, 1L, 3L, 1L, 2L, 2L, 1L, 1L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 3L, 1L, 2L, 3L, 3L, 2L, 2L, 
3L, 2L, 3L, 1L, 1L, 2L, 3L, 1L, 1L, 1L, 1L, 2L, 3L, 2L, 4L, 4L, 
4L, 3L, 2L, 1L, 1L, 1L, 3L, 2L, 1L, 3L, 2L, 2L, 2L, 2L, 4L, 3L, 
2L, 3L, 3L, 2L, 2L, 3L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 3L, 3L, 3L, 2L, 3L, 4L, 2L, 3L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 1L, 4L, 4L, 3L, 4L, 1L, 3L, 
3L, 4L, 4L, 3L, 3L, 3L, 3L, 3L, 4L, 1L, 4L, 4L, 4L, 4L, 4L, 3L, 
4L, 4L, 3L, 4L, 3L, 2L, 1L, 4L, 4L, 2L, 3L, 4L, 3L, 3L, 4L, 4L, 
3L, 3L, 4L, 2L, 3L, 3L, 3L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 
4L, 1L, 2L, 4L, 3L, 4L, 3L, 4L, 2L, 2L, 4L, 3L, 3L, 4L, 3L, 4L, 
4L, 3L, 4L, 1L, 3L, 4L, 4L, 4L, 4L, 3L, 4L, 2L, 4L, 4L, 3L, 4L, 
4L, 3L, 4L, 4L, 3L, 3L, 2L, 3L, 1L, 4L, 4L, 2L, 3L, 4L, 2L, 3L, 
4L, 4L, 3L, 3L, 4L, 4L, 4L, 4L, 3L, 2L, 3L, 2L, 3L, 4L, 2L, 4L, 
3L, 4L, 4L, 4L, 1L, 4L, 3L, 3L, 3L, 3L, 4L, 4L, 3L, 2L, 2L, 4L, 
4L, 4L, 3L, 4L, 1L, 1L, 1L, 3L, 2L, 1L, 3L, 3L, 4L, 4L, 4L, 3L, 
4L, 3L, 3L, 3L, 4L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 3L, 4L, 
4L, 3L, 3L, 4L, 3L, 3L, 4L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 3L, 4L, 
4L, 4L, 3L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 3L, 4L, 3L, 1L, 
3L, 4L, 3L, 3L, 3L, 4L, 3L, 4L, 4L, 4L, 3L, 3L, 3L, 3L, 4L, 3L, 
3L, 3L, 4L, 4L, 4L, 3L, 3L, 4L, 3L, 4L, 2L, 4L, 3L, 4L, 3L, 3L, 
4L, 3L, 3L, 3L, 4L, 4L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 3L, 4L, 
4L, 3L, 3L, 3L, 2L, 2L, 2L), levels = c("0-25%", "25-50%", "50-75%", 
"75-100%"), class = "factor")), row.names = c(NA, 1000L), class = "data.frame")

enter image description here


Solution

  • As an alternative visualization, you could make what are sometimes called raincloud plots. We can show the individual data points and summaries of how they're distributed. Since you're also interested in the exact counts per quantile, I included a label with the size of each.

    library(ggplot2)
    library(dplyr)
    library(gghalves)
    library(ggdist)
    

    Create a data frame for labeling quantiles

    df_labels <- df.mini |>
      summarize(mean_hw = mean(Headwidth),
                n = n(),
                .by = Size.Quantile.Head)
    

    Plot the raw data alongside a boxplot and density plot. The boxplot's hinges correspond to the 25th and 75th percentiles, with the median (50th percentile) marked with a line.

    df.mini |>
      ggplot(aes(x = '', y = Headwidth)) +
      stat_halfeye(
        adjust = 0.5,
        width = 0.6,
        .width = 0,
        justification = -0.2,
        point_colour = NA
      ) +
      geom_half_point(
        aes(color = Size.Quantile.Head),
        side = "l",
        range_scale = 0.4,
        alpha = 0.5,
        position = 'identity',
        transformation = position_jitter(seed = 123)
      ) +
      geom_boxplot(
        width = 0.15,
        outlier.shape = NA
      ) +
      geom_text(data = df_labels,
                aes(y = mean_hw, label = n),
                nudge_x = -0.35) +
      labs(x = '')
    

    Created on 2024-06-20 with reprex v2.1.0