【问题标题】:Plotting multiple lines with multiple columns in R在R中绘制多列多行
【发布时间】:2014-09-23 01:54:18
【问题描述】:

我正在构建一个 R 函数来绘制多个 Force Vs。一张图中的位移线。这是我的一组数据:

       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 位移线?

最终绘制它的样子:

【问题讨论】:

  • 您可以使用plot()函数绘制第一个系列,并使用lines()points()添加后续系列
  • 如果有一个 ggplot 函数,我可以通过一次拆分两列来判断(强制 v disp)会容易得多?
  • 我认为 matplot 是你想要的。
  • 顺便说一句,从dput(dataset) 发布输出会更容易重现您的示例。

标签: r plot


【解决方案1】:

如果您的数据框与您在示例中显示的格式相同,您可以将其分解为一个长数据框:

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$no 替换为一些更具描述性的因子变量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2014-04-11
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 2015-01-01
相关资源
最近更新 更多