我绘制了一个实验数据,我和多个参与者一起重复同一个试验几次。当然,我使用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)
答案 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
产量: