2016-07-12 43 views
0

我有一個看起來大致是這樣的一個數據幀:如何繪製ggplot2中有多列的data.frame?

aa <- c(1:7) 
bb <- c(11:15) 
df1 <- expand.grid(aa, bb) 
val1 <- rnorm(nrow(df1)) 
val2 <- runif(nrow(df1)) 

df <- data.frame(df1, val1, val2) 
names(df) <- c("aa", "bb", "val1", "val2") 

我想做的事:對於一個固定的AA(比如1),對BB的所有值時間序列val1和val2次。現在,我想繪製這些(對於每個val1和val2,aa = 1這些是5)時間序列。 (所以總共7 * 5 * 2時間序列)

我該如何做到這一點與ggplot2?

我嘗試以下:

require(ggplot2) 
require(reshape2) 

df_pl <- melt(df, id.vars = c("aa", "bb"), variable.name = 'val') 

ggplot(df_pl, aes(aa, value)) + geom_point(aes(colour = val)) 
ggplot(df_pl, aes(bb, value)) + geom_point(aes(colour = val)) 

但這僅產生val1和val2次圖解爲AA和BB的功能,而不是一個VAL1/val2的系列爲BB的每個值。我可能採用熔函數不正確

+0

像這樣的事情? 'ggplot(df_pl,aes(x =(interaction(bb,aa)),y = value,color = val))+ geom_point()' – Jimbou

+0

@Jimbou對於所有組合,這繪製了所有的'val1'和'val2' aa和bb。我想要做的是,比如說aa = 1,繪製val1和val2的時間序列作爲bb的函數,然後對aa = 2做相同的操作,等等。所以應該有7 * 5的val1和7 * 5時間序列的val2繪製 – user3825755

回答

2

我不確定如果我理解正確的你,這是你想要達到的目標,但也許嘗試:

ggplot(df_pl, aes(aa, value)) + geom_point(aes(colour = val)) + facet_wrap(~bb) 
ggplot(df_pl, aes(bb, value)) + geom_point(aes(colour = val)) + facet_wrap(~aa) 
+0

謝謝,這是正確的方向,有點難以解釋我想要做什麼。因此,這繪製了幾個面板,我更喜歡的是將所有東西都放在一個面板中,但對於不同的bb值(在第一種情況下)或aa值(在第二種情況下)使用不同的顏色 – user3825755

+1

因此'ggplot(df_pl ,aes(bb,value))+ geom_point(aes(color = factor(aa)))? – Axeman