R ggplot中的面无法反映数据

R ggplot中的面无法反映数据,r,ggplot2,R,Ggplot2,我正在绘制我与多次重复同一试验的多个参与者进行的试验的数据。当然,我使用ggplot2包中的facet\u grid()将每个参与者的每个试验绘制在自己的子图中。图表很漂亮,但似乎无法表示我输入的数据。也就是说,我的图表中的x轴是分类的,我已经使用factor()对级别进行了重新排序,但尽管轴是正确的,但图中的数据并不遵循预期的顺序。更奇怪的是,我使用颜色来区分值,但图例中的颜色绑定似乎已关闭。所以我的问题是。。。我能做些什么来获得预期的行为 以下是一些示例代码(数据省略): 库(ggplot2

我正在绘制我与多次重复同一试验的多个参与者进行的试验的数据。当然,我使用
ggplot2
包中的
facet\u grid()
将每个参与者的每个试验绘制在自己的子图中。图表很漂亮,但似乎无法表示我输入的数据。也就是说,我的图表中的x轴是分类的,我已经使用
factor()
对级别进行了重新排序,但尽管轴是正确的,但图中的数据并不遵循预期的顺序。更奇怪的是,我使用颜色来区分值,但图例中的颜色绑定似乎已关闭。所以我的问题是。。。我能做些什么来获得预期的行为

以下是一些示例代码(数据省略):

库(ggplot2)
#拉出颜色变量

小组也许这就是你想要的?您需要将数据保留在数据框中,将其拉出只会使事情更难保持同步(如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
库(ggplot2)
#生成一些虚假数据

n
facet\u grid
函数来自
ggplot2
package您对
v
的使用很奇怪。请尝试
df$Item不要“为颜色拉出[…]变量”。ggplot2首先查找作为
data
提供的data.frame中指定的所有内容。如果在此data.frame之外提供数据,则可能会丢失数据之间的关系。请提供一个可复制的示例。答案很好地解释了在这种情况下会发生什么以及为什么会发生这种情况。这真的很有帮助,谢谢!您可能需要考虑取消<代码>库(RESHAPE2)< /Cord>包调用。也许这是另一个问题,但假设我想再深入一点,画出x轴上每个类别的红色和蓝色子类别之间的差异。我该怎么办?我会就不同的问题回复你。
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