R 同一绘图中的多个变量

R 同一绘图中的多个变量,r,plot,reshape,R,Plot,Reshape,我有一个525*95维的数据矩阵。数据包含我希望在同一个图表中绘制的模拟值。这意味着我有95个不同的变量,它们在Y轴上有相同的起点,但在X轴上有不同的路径 我正在寻找一种方法,将所有模拟值(存储在列中)单独绘制在同一个图形中。命令plot()似乎假设我希望将模拟路径相互绘制,但我只感兴趣的是根据模拟的周期数绘制它们,即525 有什么线索吗 V1 V2 V3 1 0.01076000 0.01076000 0.01076000 2 0.01

我有一个525*95维的数据矩阵。数据包含我希望在同一个图表中绘制的模拟值。这意味着我有95个不同的变量,它们在Y轴上有相同的起点,但在X轴上有不同的路径

我正在寻找一种方法,将所有模拟值(存储在列中)单独绘制在同一个图形中。命令plot()似乎假设我希望将模拟路径相互绘制,但我只感兴趣的是根据模拟的周期数绘制它们,即525

有什么线索吗

           V1         V2         V3
1  0.01076000 0.01076000 0.01076000
2  0.01135591 0.01081002 0.01081920
3  0.01117306 0.01034507 0.01079422
4  0.01090997 0.01091913 0.01065135
5  0.01072611 0.01082653 0.01091554
6  0.01121228 0.01098110 0.01149064
7  0.01171061 0.01138791 0.01282230
8  0.01057508 0.01208230 0.01268310
9  0.01033449 0.01172448 0.01233295
10 0.01067395 0.01297883 0.01247032

一种简单的方法是使用
ggplot2
。您只需要将数据重塑为长格式,这可以通过软件包
restrape
轻松实现。具有一些模拟数据的示例:

## Simulate some data
set.seed(123)
df <- data.frame( y = runif(10) + 2 , x = runif(10) + 4 , z = runif(10) + 5 )
df
#         y        x        z
#1  2.287578 4.956833 5.889539
#2  2.788305 4.453334 5.692803
#3  2.408977 4.677571 5.640507
#4  2.883017 4.572633 5.994270
#5  2.940467 4.102925 5.655706
#6  2.045556 4.899825 5.708530
#7  2.528105 4.246088 5.544066
#8  2.892419 4.042060 5.594142
#9  2.551435 4.327921 5.289160
#10 2.456615 4.954504 5.147114


## Make an ID variable to use as the x-axis
df$ID <- 1:nrow(df)

## Melt data into long format 
df.long <- melt( df , id.vars = "ID" )


## Plot using the column name as the grouping variable
## After melting the column names are stored in the 
## column called 'varaible'
ggplot( df.long , aes( x = ID , y = value , group = variable ) ) + geom_line( aes( color = variable  ) , stat = "smooth" )
模拟一些数据 种子集(123)
df您也可以使用
matplot

以下是一些样本数据的示例(类似于SimonO101的数据,但尺寸为525*95):


您能否展示一个可复制的数据示例?(您可以通过对前几行或前几列执行
dput
来实现这一点)。这将使你的问题更清楚,更容易回答。谢谢你的回答。然而,当我尝试它时,我得到了这个错误消息。initFields(scales=scales)中出错:在user2182066中找不到函数“initRefFields”。您需要按照DavidRobinson的要求进行操作,并显示一个数据示例。我也只能帮助你,如果我知道你的数据结构和你用来绘制它的确切代码。您是否阅读了我的示例并试图理解每一行的作用?如果不做一些调整,您将无法将其应用于数据。@user2182066当您运行
packageVersion(“ggplot2”)
时,您会得到什么?我不太明白如何将数据粘贴到线程中,而不使其看起来凌乱。dput命令是如何工作的?是的,据我所知,我了解您的代码,并已将其更改为适合我的数据。当我运行命令packageVerision(“ggplot2”)时,我得到了“0.9.1”Hmm。我得到了
[1]“0.9.3.1”
。您可以尝试重新安装
ggplot2
,也可以从新的R会话开始。要使用
dput
只需运行say
dput(mydf[1:10,1:5])
,它将输出一些代码,如果您将其粘贴到问题中,我们可以复制并粘贴到R会话中,以重建数据的前10行和5列。
df <- as.data.frame(matrix(runif(525 * 95), ncol=95))
for (i in 1:ncol(df))  
  df[,i]=df[,i]+i
df[1,] = rep(0, 95)
matplot(1:nrow(df), df, type="l")