我想知道是否可以使用配对图(或这样的函数ggplot
)来绘制类变量的对,例如。
#make some example data
dd<-data.frame(matrix(rnorm(108),36,2),c(rep("A",24),rep("B",24),rep("C",24)))
colnames(dd) <- c("Predicted_value", "Actual_value", "State_CD")
我想绘制State_CD A vs B,A vs C和B vs C,仅用于Predicted_value或Actual-value,或者可能都在同一个图上。
在此示例中,我有70个类变量而不是3个,因此不希望更改为宽格式。我更愿意,如果我可以将它们绘制为类变量,并在此示例中保留其名称,如A,B,C。
答案 0 :(得分:2)
ddbind <- do.call(cbind, split(dd, dd$State_CD) )
pairs(ddbind[,grep("Pred", names(ddbind) )] )
pairs(ddbind[,grep("Act", names(ddbind) )] )
答案 1 :(得分:1)
我不确定你为什么需要配对。小倍数方法怎么样:
library(ggplot2)
p <- ggplot( dd, aes(Predicted_value,Actual_value) )
p + geom_point() + facet_wrap(~State_CD) + geom_smooth(method="lm")
通过这个问题,如果你有72个小组,你将需要进行某种简易操作并使用不同类型的情节。手段的点图对于这个
来说很棒点阵图:
dd<-data.frame(pred=rnorm(130),act=rnorm(130),state=rep(LETTERS,each=5) )
library(lattice)
library(plyr)
dd.m <- melt(dd)
dd.p <- ddply( dd.m, .(state, variable), function(x) mean(x$value) )
dd.p$color = c("red","blue")[as.integer(dd.p$variable)]
dotplot( dd.p$state ~ dd.p$V1, group= dd.p$variable )
答案 2 :(得分:0)
这不使用ggplot,但你可以这样做:
states = unique(dd$State_CD)
par(mfrow=c(1,3))
for (i in 1:length(states)){
if (i != length(states)){
for(j in (i+1):length(states)){
plot(dd$Predicted_value[which(dd$State_CD == states[i])],
dd$Predicted_value[which(dd$State_CD == states[j])],
xlab=paste(states[i]),ylab=paste(states[j]))
}
}
}
这根本不是一个优雅的解决方案,但它应该对你有用......