The Coordinates Layer

Intermediate Data Visualization with ggplot2

Rick Scavetta

Founder, Scavetta Academy

Coordinates layer

  • Controls plot dimensions
  • coord_
    • e.g. coord_cartesian()
Intermediate Data Visualization with ggplot2

Zooming in

  • coord_cartesian(xlim = ...)
  • scale_x_continuous(limits = ...)
  • xlim(...)
Intermediate Data Visualization with ggplot2

Original plot

iris.smooth <- ggplot(
  iris, 
  aes(x = Sepal.Length, 
      y = Sepal.Width, 
      color = Species)
  ) + 
  geom_point(alpha = 0.7) +
  geom_smooth()

iris.smooth 

Intermediate Data Visualization with ggplot2

scale_x_continuous()

iris.smooth + 
  scale_x_continuous(limits = c(4.5, 5.5))
Removed 95 rows containing non-finite values 
(stat_smooth).
Removed 95 rows containing missing values 
(geom_point).

Intermediate Data Visualization with ggplot2

scale_x_continuous()

Original plot

Zoom in with scale_x_continuous()

Part of original data is filtered out!

Intermediate Data Visualization with ggplot2

xlim()

iris.smooth +
  xlim(c(4.5, 5.5))
Removed 95 rows containing non-finite values 
(stat_smooth).
Removed 95 rows containing missing values 
(geom_point).

Intermediate Data Visualization with ggplot2

coord_cartesian()

iris.smooth +
  coord_cartesian(xlim = c(4.5, 5.5))

Intermediate Data Visualization with ggplot2

Aspect ratio

  • Height-to-width ratio
  • Watch out for deception!
  • No universal standard so far
  • Typically use 1:1 if data is on the same scale
Intermediate Data Visualization with ggplot2

Sunspots

library(zoo)
sunspots.m <- data.frame(
    year = index(sunspot.month),
    value = reshape2::melt(sunspot.month)$value)
)

ggplot(sunspots.m, aes(x = year, y = value)) +
  geom_line() +
  coord_fixed() # default to 1:1 aspect ratio

Intermediate Data Visualization with ggplot2

Sunspots

ggplot(sunspots.m, aes(x = year, y = value)) +
  geom_line() +
  coord_fixed(0.055)

Intermediate Data Visualization with ggplot2

Practice time!

Intermediate Data Visualization with ggplot2

Preparing Video For Download...