安排两个方面R线图的数据

时间:2017-01-21 16:29:05

标签: r facet linegraph

我正在尝试制作一个两个方面的线条图Pig Latin split columns to rows。我的问题是安排数据在x轴上显示所需的变量。这是我想要使用的小数据集。

Study,Cat,Dim1,Dim2,Dim3,Dim4
Study1,PK,-3.00,0.99,-0.86,0.46
Study1,US,-4.67,0.76,1.01,0.45
Study2,FL,-2.856,4.15,1.554,0.765
Study2,FL,-8.668,5.907,3.795,4.754

我尝试使用以下代码从此数据框中绘制折线图。

plot1 <- ggplot(data=dims, aes(x=Cat, y=Dim1, group=Study)) + geom_line()+ geom_point() + facet_wrap(~Study)

很明显,我只能使用一个值列来绘制线条。我想把Dim1,Dim2,Dim3,Dim4放在x轴上,这是我在这种数据排列中无法做到的。 [试过c(Dim1,Dim2,Dim3,Dim4)没有运气] 可能解决方案是转换表格然后我不能重现facet(上表中的研究)和颜色(上表中的Cat)的分类。任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

library(tidyr)
library(dplyr)
gather(dims, variable, value, -Study, -Cat) %>%
ggplot(aes(x=variable, y=value, group=Cat, col=Cat)) + 
  geom_point() + geom_line() + facet_wrap(~Study)

enter image description here

答案 1 :(得分:0)

解决方案非常简单。只需要思考一下,重新安排的数据就像这样。

Study,Cat,Dim,Value
Study1,PK,Dim1,-3
Study1,PK,Dim2,0.99
Study1,PK,Dim3,-0.86
Study1,PK,Dim4,0.46
Study1,US,Dim1,-4.67
Study1,US,Dim2,0.76
Study1,US,Dim3,1.01
Study1,US,Dim4,0.45
Study2,FL,Dim1,-2.856
Study2,FL,Dim2,4.15
Study2,FL,Dim3,1.554
Study2,FL,Dim4,0.765
Study2,FL,Dim1,-8.668
Study2,FL,Dim2,5.907
Study2,FL,Dim3,3.795
Study2,FL,Dim4,4.754

之后,R用这段代码产生了欲望结果。

plot1 <- ggplot(data=dims, aes(x=Dim, y=Value, colour=Cat, group=Cat)) + geom_line()+ geom_point() + facet_wrap(~Study)