2016-07-22 34 views
0

我需要創建一個面板線圖,其中每個面板都有多條線,每個面板使用相同的x和相同的y軸。我的數據集是這樣的:R - 每個面板有多條線的面板圖

阿拉斯加4 20甲
阿拉斯加6 40甲
阿拉斯加8 80甲
阿拉斯加12 100甲
佛蒙特4 10甲
佛蒙特6 30 A
佛蒙特8 50甲
佛蒙特12 60甲
猶他州4 10甲
猶他州6 20甲
猶他州8 25甲
猶他州12 45甲
阿拉斯加4 10乙
阿拉斯加6 20乙
阿拉斯加8 50乙
阿拉斯加12 80乙
佛蒙特4 30乙
佛蒙特6 50乙
佛蒙特8 60乙
佛蒙特12 70乙
猶他州4 25乙
猶他州6 45乙
猶他州8 55乙
猶他州12 65乙
阿拉斯加4 15℃
阿拉斯加6 30℃
阿拉斯加8 60℃
阿拉斯加12 70℃
佛蒙特4 15℃
佛蒙特6 25℃
佛蒙特8 45℃
佛蒙特12 80℃
猶他州4 20℃
猶他州6 35 C
猶他州8 40℃
猶他州12 55℃

讀取數據的代碼是:

library(ggplot2); 
data = read.table("test_set.dat"); 
names(data) <- c("Place", "Variable", "Value", "Condition"); 
data$Place <- as.factor(data$Place); 
data$Variable <- as.factor(data$Variable); 
data$Value <- as.numeric(data$Value); 
data$Condition <- as.factor(data$Condition); 

所以我需要一個面板爲每個地方。 X軸是可變的。 Y軸是數值。每行應該是條件,並且應該有一個標題爲「條件」的圖例。

我可以在ggplot2中做這個嗎?

回答

1

我首先使用重塑包的融合函數將數據轉換爲長格式。然後,我按照您所描述的繪製數據,按條件進行分組並將地點分隔爲多個分面。

library(reshape) 
data_gather <- melt(data) 

ggplot(data=data_gather, aes(x=Variable, y=value, group=Condition, color=Condition)) 
+ geom_line() 
+ facet_wrap(~ Place, ncol = 3) 
+0

謝謝!這正是我所需要的:-D –

+0

但問題:我如何使用主題來更改圖例和軸標題?看來,當我使用主題來改變軸,它使圖例消失。 –

+0

看看這個關於傳說的非常好的描述:http://www.cookbook-r.com/Graphs/Legends_(ggplot2)/ –