R/view.bivkey.r

Defines functions view.bivkey

#'@export
#'@import "ggplot2"

view.bivkey <- function(obj) {
  if (class(obj)[1] != "bivkey")
    stop("Object is not of class 'bivkey'")

  if (!obj$flipped) {
    x <- 'x'
    y <- 'y'
  } else {
    x <- 'y'
    y <- 'x'
  }

  # plot color key grid and add it to the user's environment so that it can be replotted if needed
  if (isTRUE(obj$transparent)) {
    p <-
      ggplot() + geom_polygon(
        data = obj$tiles,
        aes_string(
          x = 'x',
          y = 'y',
          group = 'group',
          fill = 'color'
        ),
        colour = "black"
      ) +
      scale_fill_identity() +
      coord_equal() +
      theme(
        axis.line = element_blank(),
        axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        panel.background = element_rect(fill = "transparent", colour = NA),
        plot.background = element_rect(fill = "transparent", colour = NA),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank()
      ) +
      geom_label(aes(
        x = -.5,
        y = .1,
        label = paste0(obj$estimate)
      ),
      angle = -45,
      size = obj$fontSize)  +
      geom_label(aes(
        x = 6.5,
        y = .1,
        label = paste0(obj$error)
      ),
      angle = 45,
      size = obj$fontSize)  +
      geom_label(
        data = obj$labels,
        aes_string(
          x = x,
          y = y,
          label = 'bound',
          angle = 'angle'
        ),
        size = obj$fontSize
      ) +
      xlim(c(-1.2, 7.2)) +
      ylim(c(-.75, 6))
  } else {
    p <-
      ggplot() + geom_polygon(
        data = obj$tiles,
        aes_string(
          x = 'x',
          y = 'y',
          group = 'group',
          fill = 'color'
        ),
        colour = "black"
      ) +
      scale_fill_identity() +
      coord_equal() +
      theme(
        axis.line = element_blank(),
        axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        panel.background = element_blank()
      ) +
      geom_text(aes(
        x = -.5,
        y = .1,
        label = paste0(obj$estimate)
      ),
      angle = -45,
      size = obj$fontSize)  +
      geom_text(aes(
        x = 6.5,
        y = .1,
        label = paste0(obj$error)
      ),
      angle = 45,
      size = obj$fontSize)  +
      geom_text(
        data = obj$labels,
        aes_string(
          x = x,
          y = y,
          label = 'bound',
          angle = 'angle'
        ),
        size = obj$fontSize
      ) +
      xlim(c(-1.2, 7.2)) +
      ylim(c(-.75, 6))
  }

  p

}
pkuhnert/VizU documentation built on March 19, 2024, 10:51 p.m.