--- title: "Get started" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{example} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` `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.` ```{r setup} library(ggsky) library(ggplot2) theme_set(theme_light()) ``` # Coordinate Systems ## Galactic Coordinate System ```{r} ggplot() + coord_galactic() ``` ```{r} 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 ```{r} ggplot() + coord_equatorial() ``` ```{r} 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](https://en.wikipedia.org/wiki/Great_circle), i.e., the shortest path on the sky map. ```{r} 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` ```{r} 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()` ```{r} 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`. ```{r} 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() ```