2016-08-11 43 views
0

我一直在尋找幾個小時,當然發現了一些類似的問題,但仍然沒有成功解決我的問題。刻面兩個數據集,在同一刻面上具有相同索引的兩列

這是我的問題。我有兩個數據集相同的列名,在這個例子中也是相同的行名。

比方說數據集:

t <- seq(1, 20, by = 0.5) 

num_of_rows <- length(t) 

df1 <- data.frame(A = runif(num_of_rows), B = runif(num_of_rows), C = runif(num_of_rows), D = runif(num_of_rows), F = runif(num_of_rows)) 

dimnames(df1)[[1]] <- t 

df2 <- data.frame(A = runif(num_of_rows), B = runif(num_of_rows), C = runif(num_of_rows), D = runif(num_of_rows), F = runif(num_of_rows)) 

dimnames(df2)[[1]] <- t 


df1<-melt(as.matrix(df1)) 
df2<-melt(as.matrix(df2)) 
colnames(df1) <- c("X1", "X2", "value") 
colnames(df2) <- c("X1", "X2", "value") 


ggplot() + geom_line(df1, aes(X1, value, color=factor(X2)), linetype=2) + geom_line(df2, aes(X1, value, color=factor(X2)) + facet_wrap(~X2) 

我想是繪製這些數據集爲面,每個面與來自兩組數據相同的索引列。我跟隨模擬問題的答案,即熔化,爲數據集編號分配標籤等,但我仍然接受十個方面。來自第一組數據的前五位和來自第二組的數據。我希望你能提供任何幫助。

預先感謝您。

+0

畫出他們怎麼樣?哪個繪圖函數,ggplot2?顯示您嘗試的代碼,我們可以告訴您如何解決它。 – MrFlick

+0

@MrFlick對不起,我想,這很明顯。是的,與ggplot。我熔化了兩個數據集,給了融合的數據框相同的名稱,創建了ggplot()+ geom_line(df1,aes(X1,value,color = factor(X2)),linetype = 2)+ geom_line(df2,aes(X1,value ,顏色=因子(X2))+ facet_wrap(〜X2) – user3185925

+1

所以請在你的問題中加入這段代碼,沒有理由讓我們做你已經完成的額外工作 – MrFlick

回答

0

我假設你想要5個方面,每個方面的兩條線由數據源區分。如果是這樣,這個想法是在你的審美colour=factor(src)(或者你選擇指明數據的來源),然後facet_wrap,X2(如你所做的)。

df1$src <- 1 
df2$src <- 2 
d <- rbind(df1, df2) 

ggplot(d) + 
    geom_line(aes(X1, value, colour=factor(src))) + 
    facet_wrap(~X2, ncol=5) 

enter image description here

+0

非常感謝你,似乎正是我想要的。我把數據集標記爲data1和data2,但沒有提出將顏色設置爲數據源的想法。你有什麼建議,我怎麼能設置一條虛線? – user3185925

+0

相同的想法:設置'linetype = factor(src)'''ggplot'的文檔有很多有用的細節和例子,如果你想要不同的線型,請參閱'scale_linetype_manual'。 –