где я могу найти полный список форм и цветов в качестве входных символов для geom_point?

p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point(shape = "square", color = "blue")

У меня есть функция, которая принимает shape и colorпараметры, которые будут переданы geom_point. Мне нужно проверить, действителен ли ввод. Поэтому мне нужно сделать что-то вроде:

stopifnot (shape%in% all_valid_shapes) то же самое для цвета

Так где мне взять эти списки?

1 ответ

Решение

См. Этот существующий вопрос для проверки цвета.

Для фигур вы можете использовать неэкспортированный ggplot функция, которая проверяет имена форм

ggplot2:::translate_shape_string(4)       # ok
ggplot2:::translate_shape_string("cross") # ok
ggplot2:::translate_shape_string("oops")  # bad
ggplot2:::translate_shape_string(30)      # bad

Вы можете увидеть, выдает ли это ошибку или нет. Но поскольку это неэкспортированная функция, ее работа или поддержка в будущих версиях ggplot2 не гарантируется, поэтому используйте ее на свой страх и риск.

Или в виньетке со спецификациями ggplot есть код vignette("ggplot2-specs", package="ggplot2")это, кажется, дает список всех возможных значений. вы можете проверить потенциальные строковые значения по этому списку.

shape_names <- c(
  "circle", paste("circle", c("open", "filled", "cross", "plus", "small")), "bullet",
  "square", paste("square", c("open", "filled", "cross", "plus", "triangle")),
  "diamond", paste("diamond", c("open", "filled", "plus")),
  "triangle", paste("triangle", c("open", "filled", "square")),
  paste("triangle down", c("open", "filled")),
  "plus", "cross", "asterisk"
)
Другие вопросы по тегам