2010-04-16 70 views
2

有没有人知道一种方法来控制行和列名称的字体大小/颜色/重量时,绘制与ca包的对应关系图?ca绘图文本属性

下面的代码会产生一个非常漂亮的图表,虽然如果有更多的属性(非常重,超重,超过超重的东西)或更多类的工人(peons,underlings等),那么图表将会弄得有点混乱,很难分辨出是什么。

如果您可以列出与工作人员类别不同的​​颜色的所有属性,那就太好了。

library(ca) 
data("smoke") 

plot(ca(smoke) 
    , map = "symmetric" 
    , what =c("active","active") 
    , mass = c(T,T) 
    , contrib = "absolute" 
    , col = c("red","blue") 
    , pch = c(15,17,15,17) 
    , labels = c(2,2) 
    , arrows = c(T,F) 
) 

或者,没有人知道是否有一种方式重现沿着这些线路与GGPLOT2的东西吗?我没有在网站上找到任何似乎可比的东西,但我对包装不太了解。

感谢, -Chase

回答

6

我会尝试一些在R.其他可用的对应分析功能在一些人的性格膨胀系数(cex)选项的支持,这样你就可以控制字体的大小。 例如

library(FactoMineR) 
res<-CA(smoke, ncp=5, row.sup=NULL, col.sup=NULL, graph = FALSE) 
plot.CA(res, axes=c(1, 2), col.row="red", col.col="blue", label=c("col","col.sup", "row", "row.sup"),cex=.7) 

library(MASS) 
biplot(corresp(smoke, nf = 2),cex=.7,col=c("red","blue")) 

library(anacor) # actually I didn't find a way to control font size here 
res <- anacor(smoke, scaling = c("Benzecri", "Benzecri"),ndim=2) 
plot(res, plot.type = "jointplot", conf = NULL) 

编辑

当然,你可以得到从CA结果集的坐标,并使用GGPLOT2产生该地块。在这里我使用来自CA的res对象。

df <- data.frame(dim1 = c(res$col$coord[,1],res$row$coord[,1]), 
dim2 = c(res$col$coord[,2],res$row$coord[,2]), 
type=c(rep(1,length(res$col$coord[,1])),rep(2,length(res$row$coord[,1])))) 

library(ggplot2) 
qplot(dim1,dim2,data=df,colour=factor(type)) + 
geom_text(aes(label=rownames(df)),size=3) 
+0

这正是我需要的帮助我对我的方式。我很抱歉没有及时回复,我一直在旅行。再次感谢! – Chase 2010-04-22 21:57:15

0

George Dontas的第二个代码块是一个很好的例子。为我解决了一个大问题。但我花了永远要弄清楚的是,CA-对象的名称实际上是:

[YOUR_CA-CLASS-TABLE]$colcoord[,1] 

[YOUR_CA-CLASS-TABLE]$rowcoord[,1] 
+0

我认为它更适合乔治Dontas答案的评论。 – 2014-01-20 22:13:59

+0

您必须先评论50评论... – nevrome 2014-01-20 22:24:29

+0

对不起,;-) – 2014-01-20 22:25:58