【问题标题】:Stored/flexible geom存储/灵活几何
【发布时间】:2019-10-31 03:33:01
【问题描述】:

我正在尝试在 Shiny 图中使用 ggplot2 获取可变几何类型。

if (type == "column") {
    geom <- geom_col() 
} else {
    geom <- geom_line() + geom_point()
}

qplot(1:10, 1:10) + geom

如果我们删除“geom_point”,但组合它们不会返回表达式,而是单独评估(这是不可能的:不能将 ggproto 对象添加在一起),这会起作用。是否有某种解决方法不需要存储绘图然后添加几何图形?

【问题讨论】:

  • 我无法重现它,但只是猜测如果您将 elselist 包装如下:geom &lt;- list(geom_line() + geom_point())?
  • 不好抱歉:仍然尝试在列表函数中评估geom_col() + geom_point(),这仍然是不可能的。

标签: r ggplot2


【解决方案1】:

如果您将geoms 存储在list 中,它确实工作

my_geom <- function(type)
    if (type == "column") list(geom_col()) else list(geom_line(), geom_point())

qplot(1:10, 1:10) + my_geom("column")

qplot(1:10, 1:10) + my_geom("other")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    相关资源
    最近更新 更多