在R中使用多列打印多条直线
我正在构建一个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
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
。