pair()类变量的图

时间:2011-08-14 03:22:33

标签: r plot

我想知道是否可以使用配对图(或这样的函数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。

3 个答案:

答案 0 :(得分:2)

ddbind <- do.call(cbind, split(dd, dd$State_CD)  )
pairs(ddbind[,grep("Pred", names(ddbind) )] )
pairs(ddbind[,grep("Act", names(ddbind) )] )

pairsplot

答案 1 :(得分:1)

我不确定你为什么需要配对。小倍数方法怎么样:

library(ggplot2)
p <- ggplot( dd, aes(Predicted_value,Actual_value) )
p + geom_point() + facet_wrap(~State_CD) + geom_smooth(method="lm")

ggplot geom_point

通过这个问题,如果你有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 )

dotplot

答案 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]))
      }
   }
}

plot

这根本不是一个优雅的解决方案,但它应该对你有用......