2016-07-22 47 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)/ –