2013-05-06 3 views
2

У меня есть матрица данных с размером 525 * 95. Данные содержат смоделированные значения, которые я хочу построить на одном графике. Это означает, что у меня есть 95 различных переменных, которые имеют одну и ту же начальную точку на оси Y, но будут принимать разные пути по оси X.Множество переменных в одном и том же графике

Я ищу способ построения всех имитируемых значений (хранящихся в столбцах) отдельно, но на одном и том же графике. Командный сюжет(), по-видимому, предполагает, что я хочу построить моделированные пути друг против друга, но меня интересует только их число против числа периодов, для которых они были имитированы, а именно 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.
10 0.01067395 0.01297883 0.01247032 
+2

Могли бы вы показать воспроизводимый пример ваших данных? (Вы можете получить это, выполнив 'dput' в первых нескольких строках или в первых нескольких столбцах). Это сделает ваш вопрос более ясным и облегчит ответ. –

ответ

1

Один простой способ сделать это с ggplot2. Вам просто нужно переформатировать свои данные в длинный формат, который вы можете сделать очень легко с пакетом reshape. Пример с некоторыми моделируемыми данными:

## 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") 

enter image description here

+0

Благодарим вас за ответы. Однако, когда я пытаюсь, я получаю это сообщение об ошибке. Ошибка в initFields (шкалы = шкалы): не удалось найти функцию «initRefFields» – user2182066

+0

@ user2182066 Вам нужно сделать, как задал DavidRobinson, и показать пример ваших данных. Я также могу помочь, только если я знаю структуру ваших данных и точный код, который вы использовали для его построения. Вы читали мой пример и пытались понять, что делает каждая строка? Вы не сможете применить его к своим данным без внесения нескольких изменений. –

+0

@ user2182066 при запуске 'packageVersion (" ggplot2 ")' что вы получаете? –

1

Вы также можете использовать matplot.

Вот пример с некоторыми образцами данных (аналогично данным SimonO101, но с размером 525 * 95):

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") 

enter image description here

Смежные вопросы