平均值与类别的关系图

时间:2014-12-03 22:52:23

标签: r plot lattice

我有三个变量,两个分类和一个连续变量。分别说v1,v2和v3。我想为每个v1类别在v2和v3之间绘制一个图。此外,在每个v1类别的v2和v3的图中,我有重复的v2类别。因此v2的每个类别的v3的多个值。我实际上想要为每个v2类别绘制v3的平均值。我使用了格子xyplot(),但它没有提供所需的结果(它为所有类别的v2绘制了v3的所有个体值)。在这方面你能帮我吗?数据示例和代码如下

v1 <- rep(c(2,4,6,8,10), each = 6)  
v2 <- rep(1:3,10)  
v3 <-runif(30,0.01,0.3)
combined_data <- data.frame(v1,v2,v3)  
xyplot(v3 ~ v2|v1, data = combined_data, type = "o")

2 个答案:

答案 0 :(得分:0)

您通常需要在bwplot调用的RHS上使用数据类型,但交互功能确实提供了该功能:

bwplot(v3 ~ interaction(v2,v1), data = combined_data,horizontal=FALSE)

enter image description here

答案 1 :(得分:0)

目前还不完全清楚您的目标是什么,因此使用ggplot有三种可能性。

library(ggplot2)
# lines and points; similar to type="o" with xyplot(...)
ggplot(combined_data,aes(x=v2,y=v3))+
  stat_summary(fun.y=mean,geom="line",color="blue",linetype=2)+
  stat_summary(fun.y=mean,geom="point", pch=1,size=3)+
  scale_x_continuous(breaks=combined_data$v2)+
  facet_grid(~v1)+
  theme_bw()

# bar plot
ggplot(combined_data,aes(x=factor(v2),y=v3))+
  stat_summary(fun.y=mean,geom="bar",color="grey50",fill="lightgreen")+
  facet_grid(~v1)+
  theme_bw() + labs(x="v2")

# boxplot
ggplot(combined_data,aes(x=factor(v2),y=v3))+
  geom_boxplot(color="grey50",fill="lightgreen")+
  facet_grid(~v1)+
  theme_bw() + labs(x="v2")