在绘制与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
答案 0 :(得分:6)
我会尝试R中提供的其他一些对应分析功能。其中一些支持字符扩展因子(cex
)选项,因此您可以控制字体大小。
e.g。
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)
答案 1 :(得分:0)
George Dontas的第二个代码块是一个非常好的例子。为我解决了一个大问题。但我花了很长时间才弄清楚CA对象的名称实际上是:
[YOUR_CA-CLASS-TABLE]$colcoord[,1]
和
[YOUR_CA-CLASS-TABLE]$rowcoord[,1]