我知道如何使用R的默认绘图功能进行绘图。我如何在ggplot2中执行与以下R代码相同的操作?
double <- function(x){
return(x^2)
}
triple <- function(x){
return(x^3)
}
xs <- seq(-3,3,0.01)
dou <- double(xs)
tri <- triple(xs)
plot(rep(xs, 2), c(dou, tri), typ="n")
lines(xs, dou, col="red")
lines(xs, tri, col="green")
答案 0 :(得分:5)
使用ggplot2
时,无需在绘图前应用这些功能。您可以告诉ggplot2
使用您的功能。
library(ggplot2)
ggplot(as.data.frame(xs), aes(xs)) +
stat_function(fun = double, colour = "red") +
stat_function(fun = triple, colour = "green")
答案 1 :(得分:2)
您可以使用stat_function
,但由于您未在基础图中使用curve
,我认为您正在寻找带有geom_line
的简单散点图。
ggplot2
与data.frame一起用作数据源。例如:
dat <- data.frame(xs=xs,dou=dou,tri=tri)
library(reshape2)
library(ggplot2)
ggplot(melt(dat,id.vars='xs'),
aes(xs,value,color=variable))+
geom_line()
编辑
使用基本图表,您可以使用curve
:
curve(x^3,-3,3,col='green',n=600)
curve(x^2,-3,3,col='red',n=600,add=TRUE)