[问题] plot label overlapping

楼主: pp61022 (fight)   2018-05-22 23:35:09
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
使用者(已经有用R 做过不少作品)
[问题叙述]:
我想要自己画出circle of correlation,有顺利画出,
但是由于我的资料的共变异数矩阵有结构性,
有好几个变量的分配是一样的, 所以去做主成分之后,
这几个相关系数是很接近的,所以PLOT上面的LABEL就叠在一起了,
但变量实在太多,没办法自己慢慢给定他label的位置,
ex. X1~X4相关系数很接近,X5~X8相关系数很接近,X9~X18相关系数很接近。
变量实际上更多,这里是小范例。
如下图所示,
https://imgur.com/a/ewGenyB
我有查到有避免label overlapping的函数,
但似乎都只能跟ggplot2、lattice搭配才能使用,
但ggplot2与lattice好像不能画出circle of correlation plot,
想问版友有没有遇过类似的问题,可以怎么解决这种label重叠的问题,谢谢大家。
[程式范例]:
我的程式码如下:
PCA.cor
Comp.1 Comp.2
[1,] -0.4004015 -0.91530070
[2,] -0.4031804 -0.91388941
[3,] -0.4009309 -0.91467268
[4,] -0.4051744 -0.91267974
[5,] 0.9511231 -0.30135543
[6,] 0.9435535 -0.32519751
[7,] 0.9466522 -0.31579510
[8,] 0.9435672 -0.32456862
[9,] 0.9987228 -0.01456728
[10,] 0.9980840 -0.02914308
[11,] 0.9977504 -0.03330187
[12,] 0.9981728 -0.02351494
[13,] 0.9976536 -0.02976503
[14,] 0.9984927 -0.01768483
[15,] 0.9980019 -0.02672811
[16,] 0.9976367 -0.04240636
[17,] 0.9976763 -0.03634121
[18,] 0.9984849 -0.01990170
corrplot <- function(pca.cor, main){
a <- seq(0, 2*pi, length = 100)
plot(cos(a), sin(a), type = 'l', col="gray",
xlab = "PC1", ylab = "PC2", main=main)
abline(h = 0, v = 0, lty = 2)
# Add active variables
arrows(0, 0, pca.cor[, 1], pca.cor[, 2],
length = 0.1, angle = 15, code = 2)
# Add labels
text(pca.cor+0.05, labels=1:100, cex = 1, adj=1)
}
[环境叙述]:
请提供 sessionInfo() 的输出结果,
里面含有所有你使用的作业系统、R 的版本和套件版本资讯,
让版友更容易找出错误
[关键字]:
label overlapping
作者: andrew43 (讨厌有好心推文后删文者)   2018-05-23 02:23:00
我的经验中最接近的是vegan::orditkplot()刚好该function可以接受同套件中rda()结果而rda()可以做PCA但如果是要输出成图档要美观,我会用inkscape认真调啦
作者: cywhale (cywhale)   2018-05-23 08:25:00
ggplot2可以画PCA没问题,其实就只是把主成分两个轴当X,Yarrow 可以用geom_segment 图标重叠用ggrepel中的geom_text_repel or geom_label_repel 很好用我推荐这个,如果你不想试ggplot 上次看到factoextrahttp://www.sthda.com/english/rpkgs/factoextra/有repel=TRUE 功能,可以试看看,可能没有ggrepel强
作者: seimwiwa (pezcadido)   2018-05-23 10:32:00
推ggrepl
楼主: pp61022 (fight)   2018-05-24 00:29:00
谢谢各位的建议 我再尝试看看 谢谢大家!

Links booklink

Contact Us: admin [ a t ] ucptt.com