«Маркировать» галочки в ggplot2? - PullRequest
1 голос
/ 27 апреля 2020

Я хотел создать сюжет, чтобы помочь людям понять различные части сюжета в ggplot2. Я все еще на полпути, но в настоящее время я борюсь за маркировку axis.ticks, потому что они сняты с сюжета. Интуитивно я думал, что смогу сделать это с cowplot::add_sub, но у меня возникли некоторые проблемы.

library(ggplot2)
library(tibble)
library(ggdark)
library(ggrepel)
library(cowplot)

green = "#32CD32"
blue = "#49f9fe"
pink = "#E64E8D"

label_df <- 
tribble( ~x, ~y, ~label,
         300, 7.2, "panel.grid.major",
         275, 6.7, "panel.grid.minor",
         -100, 6.3, "axis.ticks")

x <- 
mtcars %>% 
  ggplot(aes(hp, cyl)) +
  geom_point(alpha = 0) +
  dark_theme_light() + 
  geom_text_repel(aes(x, y, label = label), data = label_df[1,], nudge_x = -20, nudge_y = .5, col = pink) +
  geom_text_repel(aes(x, y, label = label), data = label_df[2,], nudge_x = 20, nudge_y = .2, col = pink) +
  #geom_text_repel(aes(x, y, label = label), data = label_df[3,], nudge_x = 20, nudge_y = .2) +
  theme(panel.grid.major = element_line(colour = green, size = 1),
        panel.grid.minor = element_line(colour = green), 
        axis.ticks = element_line(colour = green), 
        #axis.title = element_text(colour = blue), 
        axis.text = element_text(colour = blue)
        ) +
  labs(x = "scale_x_continuous",
       subtitle = "* disclaimer: all colors were adjusted using `theme()`",
       y = "scale_y_continuous",
       title = "Learn ggplot2 from ggplot2")
  # + scale_x_continuous(breaks = seq(50, 300, by = 50), labels = c("control", "axis", "labels", "with", "'labels'", "argument")) +
  # scale_y_continuous(labels = rev(c("control", "frequency", "with", "'breaks'", "argument")))
p <- add_sub(plot = x, label = "sss", x = 150, y = 6.5, colour = "black", size = 13)

ggdraw(p)

ggplot-tutorial-draft

1 Ответ

1 голос
/ 27 апреля 2020

Вы можете установить x в -Inf, чтобы указывать на отметки оси y, или y = -Inf, чтобы указывать на отметки оси x.

label_df <- 
tribble( ~x, ~y, ~label,
     300, 7.2, "panel.grid.major",
     275, 6.7, "panel.grid.minor",
     -Inf, 6.3, "axis.ticks")
...