【发布时间】:2018-10-24 13:30:20
【问题描述】:
这可能是一个非常幼稚的问题。我搜索并找不到重复项,但如果有人问过这个问题,请告诉我!
我有一些基于布尔参数的函数,它们要么创建一个新图,要么在现有图的顶部绘制。这是一个 MWE:
plotThing <- function(boolPoints = FALSE, color = "black") {
x <- sample(c(1:100), size = 10, replace=TRUE)
y <- sample(c(1:100), size = 10, replace=TRUE)
if(boolPoints) {
points(y~x, col = color, pch = 19)
}
else {
plot(y~x, col = color, pch = 19)
}
}
这种风格的函数对我很有用,因为我将所有这些函数都导入到 Markdown 文档中,然后在一个绘图上绘制任意大量的点真的很容易。比如在markdown文档中:
```{r MWE}
source("MWE.R")
plotThing();
plotThing(boolPoints = TRUE, color = "red")
legend("topright", title = "Things", c("thing1", "thing2"), pch = c(19,19), col = c("black", "red"))
```
在实际的代码中,我认为这种风格可能是一个不错的选择,因为我的绘图函数非常大,并且有很多参数会很难一遍又一遍地重复。
是否有可能/如何使用 ggplot 进行等效设置?或者这只是您建议更改的糟糕设计?
【问题讨论】: