繁体   English   中英

在ggplot2的同一图中绘制两条线

[英]Plotting two lines in the same graph in ggplot2

我知道如何使用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")

情节

使用ggplot2时,无需在绘制之前应用这些函数。 您可以告诉ggplot2使用您的函数。

library(ggplot2)
ggplot(as.data.frame(xs), aes(xs)) +
  stat_function(fun = double, colour = "red") + 
  stat_function(fun = triple, colour = "green")

在此处输入图片说明

您可以使用stat_function ,但是由于您没有在基本图中使用curve ,因此我认为您正在使用geom_line寻找一个简单的散点图。

  1. 将数据放入data.frame中: ggplot2与data.frame作为数据源一起使用。
  2. 以长格式重整数据:aes以长格式工作,通常根据第三个变量z绘制x与y的关系。

例如:

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)

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM