ggplot中的方面无法反映数据

时间:2016-01-04 08:07:52

标签: r ggplot2

我绘制了一个实验数据,我和多个参与者一起重复同一个试验几次。当然,我使用facet_grid()包中的ggplot2为每个参与者绘制自己的子图中的每个试验。图表很漂亮,但它似乎无法代表我提供的数据。也就是说,我的图表中的x轴是分类的,我使用factor()重新排序了级别,但是当轴是正确的时,图中的数据不符合预期的顺序。更奇怪的是,我使用颜色来区分值,但图例中的颜色绑定似乎已关闭。所以我的问题是......我能做些什么来达到预期的行为?

这里有一些示例代码(省略数据):

library(ggplot2)

#pulling out variable for color
group <- df$Subvalue

#assigning an order to levels
v <- df$Item
v <- factor(v, levels = c("a", "o", "e", "u", "i", "A"))

p <- ggplot(df, aes(x=v, y=Duration, color=group)) + 
    geom_point(shape=1)
p
#adding the facets
p + facet_grid(Repetition ~ Participant)

这是我图表的一部分(在pdf-ifying中它并没有很好地表现出来,所以只需用它来获得格式塔): ggplot broken into facets, colored and re-ordered

1 个答案:

答案 0 :(得分:2)

也许这就是你想要的?您需要将数据留在数据框中,将其拉出来只是让事情更难以保持同步(正如Hugh所说)。你还需要明确你想要的颜色。

library(ggplot2)

# generate some fake data
n <- 500
iv <- sample(c("a", "o", "e", "u", "i", "A"),n,replace=T)
dv <- rnorm(n,100,50)
sv <- sample(c("group-1","group-2"),n,replace=T)
rv <- sample(1:2,n,replace=T)
pv <- sample(1:14,n,replace=T)
df <- data.frame(Item=iv,Duration=dv,Subvalue=sv,Repetition=rv,Participant=pv)

#assigning an order to levels
df$v <- factor(df$Item, levels = c("a", "o", "e", "u", "i", "A"))

p <- ggplot(df, aes(x=v, y=Duration, color=Subvalue)) + 
  geom_point(shape=1) +
  scale_color_manual(values=c("group-1"="red","group-2"="blue")) +
  facet_grid(Repetition ~ Participant)
p

产量:

enter image description here