我有三个变量,两个分类和一个连续变量。分别说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")
答案 0 :(得分:0)
您通常需要在bwplot调用的RHS上使用数据类型,但交互功能确实提供了该功能:
bwplot(v3 ~ interaction(v2,v1), data = combined_data,horizontal=FALSE)
答案 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")