【问题标题】:where can I find the complete list of shapes and colors as character inputs for geom_point?在哪里可以找到作为 geom_point 字符输入的形状和颜色的完整列表?
【发布时间】:2021-03-01 08:13:55
【问题描述】:
p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point(shape = "square", color = "blue")

我有一个函数可以接受shapecolor 参数,它们将被传递给geom_point。我需要检查输入是否有效。所以我需要做类似的事情:

stopifnot(shape %in% all_valid_shapes) 颜色同上

那么我在哪里可以获得这些列表?

【问题讨论】:

标签: r ggplot2 geom geom-point


【解决方案1】:

this existing question for validating color

对于形状,您可以使用未导出的 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 specs vignette 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"
)

【讨论】:

  • shape_names 代码满足了我的需求。但不幸的是,我找不到颜色。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
  • 2022-01-02
  • 1970-01-01
  • 2012-05-17
相关资源
最近更新 更多