где я могу найти полный список форм и цветов в качестве входных данных для 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) то же самое для цвета

Так где я могу получить эти списки?


person free_lions_n_tigers_from_cages    schedule 18.11.2020    source источник
comment
Дубликат для цветовой части: stackoverflow.com/questions/13289009/   -  person MrFlick    schedule 18.11.2020


Ответы (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"
)
person MrFlick    schedule 18.11.2020
comment
Код shape_names удовлетворил мои потребности. Но, к сожалению, я не мог найти что-то для цвета. - person free_lions_n_tigers_from_cages; 20.11.2020