We know that ggplot2 includes a special + method for ggplot objects, which uses to add layers to plots.
library(ggplot2)
df <- structure(list(Percent = c(1, 2, 3, 4, 5),
Test = c(4, 2, 3, 5, 2),
Train = c(10, 12, 10, 13, 15)),
.Names = c("Percent", "Test", "Train"),
row.names = c(NA, 5L), class = "data.frame")
ggplot(df, aes(x = Percent)) +
geom_point(aes(y = Test), colour = "red") +
geom_line(aes(y = Test), colour = "red")
Out:
I turned the above plotting program into a function plot_func, but I hope we could control whether I need to add scatter via a parameter, not by commenting out this line: geom_point(aes(y = Test ), colour = "red") +.
plot_func <- function(data){
p <- ggplot(df, aes(x = Percent)) +
geom_point(aes(y = Test), colour = "red") +
geom_line(aes(y = Test), colour = "red")
return(print(p))
}
plot_func(df)
The expected result would be something like this. Suppose we have a parameter add_point in our function plot_func, and we set add_point=FALSE, it will achieve a plot similar to that after commenting out geom_point(aes(y = Test), colour = "red") + .
How to achieve this? Thanks.
plot_func <- function(data, add_point=FALSE){
p <- ggplot(df, aes(x = Percent)) +
# geom_point(aes(y = Test), colour = "red") +
geom_line(aes(y = Test), colour = "red")
return(print(p))
}
plot_func(df)
Out:





