我正在构建一个可以绘制多个Force Vs的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
这是数据集的最小代表。
是否有人能够协助我实现我的目标,即在一个情节内绘制多个力v位移线?
最终情节如下:
答案 0 :(得分:2)
如果您的数据框具有您在示例中显示的相同格式,则可以将其分解为长数据框:
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")
这很难看,但我猜是有效的。