如何在R中的同一画布上绘制两条曲线

时间:2013-04-29 16:12:14

标签: r data-visualization

以下是生成模拟数据的代码:

eff = seq(.1, 1, .1)
method = c('method1', 'method2')
xxxd = expand.grid(eff=eff, method=method)
xxxd$power = c(pow1, pow2)
pow1 = seq(.2, .7, length.out=10)
pow2 = seq(.4, .8, length.out=10)
pow1 = pow1 + rnorm(10, .05, .01)
pow2 = pow2 + rnorm(10, .05, .01)
xxxd$power = c(pow1, pow2)

以下是数据:

   eff  method   power
1  0.1 method1 0.25942
2  0.2 method1 0.32162
3  0.3 method1 0.36329
4  0.4 method1 0.41286
5  0.5 method1 0.47904
6  0.6 method1 0.52165
7  0.7 method1 0.58191
8  0.8 method1 0.64884
9  0.9 method1 0.69488
10 1.0 method1 0.73656
11 0.1 method2 0.44882
12 0.2 method2 0.49010
13 0.3 method2 0.54465
14 0.4 method2 0.58675
15 0.5 method2 0.63173
16 0.6 method2 0.69120
17 0.7 method2 0.71456
18 0.8 method2 0.77440
19 0.9 method2 0.81033
20 1.0 method2 0.85103

我想要制作的数字是这样的:

enter image description here

2 个答案:

答案 0 :(得分:3)

您可能希望执行lines()功能。首先使用plot()与您的某个“方法”,然后在第二个上使用lines()。参数与plot相同。只是它将新曲线添加到现有绘图而不是创建新窗口。 ?lines应该澄清更多。

答案 1 :(得分:3)

由于您的数据似乎是长格式,因此与ggplot2一起使用很简单:

library(ggplot2)
ggplot(xxxd, aes(eff, power, colour = method)) + geom_line()

enter image description here

ggplot2的帮助页面非常精彩:http://docs.ggplot2.org/current/