在R中使用多列打印多条直线

在R中使用多列打印多条直线,r,plot,R,Plot,我正在构建一个R函数,它将在一个图中绘制多条力与位移线。以下是我的数据集: myrows displacememnt force displacememnt force displacememnt force displacememnt force displacememnt [1,] 1 0.000000e+00 0 0.000000e+00 0 0.000000e+00 0 0.000000e+00 0 0.000000e+0

我正在构建一个R函数,它将在一个图中绘制多条力与位移线。以下是我的数据集:

       myrows displacememnt force displacememnt force displacememnt force displacememnt force displacememnt
[1,]      1  0.000000e+00     0  0.000000e+00     0  0.000000e+00     0  0.000000e+00     0  0.000000e+00
[2,]      2  4.292647e-08     0  8.829379e-08     0  4.194021e-08     0  4.136511e-08     0 -3.818898e-08
[3,]      3  1.284946e-09     0  1.343980e-07     0  4.665416e-08     0  3.375577e-08     0 -4.819687e-09
[4,]      4  4.380121e-08     0  1.742593e-07     0  7.184801e-09     0  3.734106e-08     0  3.210356e-08
[5,]      5  8.224440e-08     0  2.558701e-07     0  1.245641e-07     0  8.266907e-08     0  1.024775e-07
[6,]      6  1.269747e-07     0  3.842161e-07     0  1.223706e-07     0  1.666898e-07     0  1.407497e-07 
我想做的就是在同一张图中画出多个力与位移的关系。但我不知道如何分割数据,我尝试了熔化功能:

    meltedData <- melt(dataset,id.vars="myrows")
> head(meltedData)
  Var1   Var2 value
1    1 myrows     1
2    2 myrows     2
3    3 myrows     3
4    4 myrows     4
5    5 myrows     5
6    6 myrows     6
meltedData头(meltedData)
Var1 Var2值
1我的行1
2 myrows 2
3我的第3排
4我的行4
5我的行5
6我的第6行
这是数据集的最小表示

是否有人能帮助我实现我的目标,即在一个图中绘制多条力v位移线

最终绘制它的外观:


如果您的数据帧与示例中显示的格式相同,您可以使用以下方法将其拆分为一个长数据帧:

df <- data.frame(myrows=c(1,2,3), force=c(0, 0.1, 0.2), disp=c(0.1, 0.2, 0.3), 
    force=c(0.1, 0.2, 0.3), disp=c(0.1, 0.2, 0.3))

new.df <- NULL
for (i in seq(2, ncol(df), 2)) {
    new.df <- rbind(new.df, data.frame(no=i/2, force=df[, i], disp=df[, i+1]))
}

library(ggplot2)
qplot(force, disp, group=no, data=new.df, col=factor(no), geom="line")

df您可以使用
plot()
函数来绘制第一个系列,并使用
lines()
points()
来添加后续系列如果有一个ggplot函数,我可以通过一次拆分两列(force v disp)来判断它,那会容易得多?我想matplot就是您想要的。顺便说一下,发布来自
dput(dataset)
的输出将更容易重现您的示例。不客气,很高兴它能起作用。如果可以的话,你介意分享最后的情节吗?完成。我改变了“否”作为情节的背景。谢谢!如果要使用更具描述性的名称重新标记行,可以使用更具描述性的因子变量替换
df$no