The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Get started

TL;DR: ggsky adds galactic and equatorial sky-map coordinates to ggplot2, so you can plot points, paths, and segments on a Hammer projection with readable sky-grid labels.

library(ggsky)
library(ggplot2)
#> Warning: package 'ggplot2' was built under R version 4.5.2
theme_set(theme_light())

Coordinate Systems

Galactic Coordinate System

ggplot() +
  coord_galactic()

N <- 100
df_gal <- data.frame(
  l = runif(N, 0, 360), 
  b = runif(N, -90, 90)
)

ggplot(df_gal, aes(l, b)) +
  geom_point() +
  coord_galactic()

Galactic longitude vs latitude.

Equatorial coordinate system

ggplot() +
  coord_equatorial()

df1 <- data.frame(
  ra = runif(N, 0, 360),
  dec = runif(N, -90, 90)
)

ggplot(df1, aes(ra, dec)) +
  geom_point() +
  coord_equatorial()

Right ascension versus declination. Coordinates ra and dec must be in degrees.

Custom geoms

geom_path

It projects geom_path between points along Great circle, i.e., the shortest path on the sky map.

df_path_gal <- data.frame(
  l = c(110, 110),
  b = c(-4, 60),
  g = 1
)

ggplot(df_path_gal, aes(l, b, group = g)) +
  geom_path(colour = "blue", linewidth = 1) +
  coord_galactic()

geom_segment

df_seg_eq <- data.frame(
  x = 30, y = -10,
  xend = 120, yend = 40
)

ggplot(df_seg_eq) +
  geom_segment(
    aes(x = x, y = y, xend = xend, yend = yend),
    linewidth = 1, colour = "orange",
    arrow = arrow(type = "closed", length = unit(0.1, "inches"))
  ) +
  coord_equatorial()

Custom scales

scale_gal_lat(), scale_gal_lon(), scale_eq_ra(), scale_eq_dec()

df_path_eq <- data.frame(
  ra = c(0, 60),
  dec = c(30, 30),
  g = 1
)

ggplot(df_path_eq, aes(ra, dec, group = g)) +
  geom_path() +
  coord_equatorial() +
  scale_eq_ra(breaks = seq(0, 330, by = 30))

Plot celestial equator on galactic plane

Use built-in dataset equator.

ggplot(equator, aes(l, b)) +
  geom_path(linetype = "dotted", color = "red") +
  geom_text(
    data = subset(equator, ra %% 30 == 0),
    aes(label = sprintf("%d*degree", ra)),
    parse = TRUE,
    vjust = -0.5,
    size = 3,
    color = "red"
  ) +
  coord_galactic()

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.