r - ggplot:根据两个geom的组合创建一个新geom
问题描述
例如,我有两个 geomgeom_smooth
和geom_point
. 我想创建一个新的单独几何图形,geom_smoothpoint
它将绘制上述两个几何图形。
我想要这个:
ggplot(iris, aes(x=Sepal.Length, y=Petal.Width)) +
geom_smoothpoint()
给出与以下相同的结果:
ggplot(iris, aes(x=Sepal.Length, y=Petal.Width)) +
geom_point() +
geom_smooth(method="lm")
我尝试将这两者结合起来:
geom_smoothpoint <- function(){
geom_point() +
geom_smooth(method="lm")
}
但它并没有真正起作用。看来我必须组合ggproto
对象,但我不确定如何。有什么简单的方法可以将两个几何图形合二为一吗?谢谢!
解决方案
你当然可以自己写geom
,但这绝对是矫枉过正。在函数中返回一个列表要容易得多,您可以方便地将其添加到绘图中:
geom_smoothpoint <- function() {
list(geom_point(), geom_smooth(method = "lm"))
}
ggplot(iris, aes(x=Sepal.Length, y=Petal.Width)) +
geom_smoothpoint()
推荐阅读
- android - OnClick 事件在 NavigationView 中不起作用
- web - 服务器上的实际网页是否应受版本控制
- c - 精灵读符号
- php - 在 Woocommerce 档案中按自定义元键对产品进行排序
- python - 深度嵌套的 json - Pandas DataFrame 字典中的列表
- java - Scala 中 Java 的 Map.of
- kotlin - 为什么 readLine 中的字符串模板在 Kotlin 中不起作用?
- r - latex() 函数不使用 R“rms”包提供渲染输出
- javascript - 如何在 sipJS 中更改 STUN 服务器
- c# - 以高性能对地理数据进行分页