Rose diagrams

Definition

A rose diagram is a circular histogram. Angles are grouped into bins around a periodic interval, and bin frequencies are displayed radially.

Linear versus circular histograms

The discontinuity between 0 and 2 * pi is artificial. A circular display places these two values next to each other.

library(ggplot2)
library(ggcircular)

ggplot(wind_directions, aes(x = direction)) +
  geom_rose(bins = 16) +
  scale_x_circular_degrees() +
  coord_circular() +
  theme_rose()

Choosing the number of bins

Fewer bins emphasize broad directional patterns. More bins reveal local structure but increase sampling variability.

ggplot(wind_directions, aes(x = direction)) +
  geom_rose(bins = 32) +
  scale_x_circular_degrees() +
  coord_circular() +
  theme_rose()

Counts, densities and proportions

The normalize argument controls the computed radial variable. The computed variables are also available through after_stat().

ggplot(wind_directions, aes(x = direction)) +
  geom_rose(aes(fill = after_stat(proportion)), bins = 16, normalize = "proportion") +
  scale_x_circular_degrees() +
  coord_circular() +
  theme_rose()

Area versus radius

When area = TRUE, the displayed radial height is square-root transformed. This can help when comparing frequencies by visual area.

ggplot(wind_directions, aes(x = direction)) +
  geom_rose(bins = 16, area = TRUE) +
  scale_x_circular_degrees() +
  coord_circular() +
  theme_rose()

Groups and facets

Groups can be represented with fill, colour or facets.

ggplot(wind_directions, aes(x = direction, fill = season)) +
  geom_rose(bins = 16, alpha = 0.7) +
  facet_wrap(~ season) +
  scale_x_circular_degrees() +
  coord_circular() +
  theme_rose()

Axial data

For axial data, use axial = TRUE and a scale limit of c(0, pi).

ggplot(axial_orientations, aes(x = orientation, fill = group)) +
  geom_rose(bins = 18, axial = TRUE) +
  scale_x_circular_degrees(limits = c(0, pi)) +
  coord_circular() +
  theme_rose()

Interpretation

Rose diagrams are descriptive. Apparent modes can depend on the bin origin and number of bins, so they should often be paired with a density estimate or summary statistic.