四 182010
更新了一下corrplot包,变动如下:
1. 解决了之前的一些小bug,并且把原来的一些for()循环用*apply函数重写了一下。
2. 增加了corr.rect()函数,可以在相关阵的图上面框框,类似于谱系图上面的那种矩形,即将原来的多个变量分为n类。这两种图(见图1、图2)可以好好比较一下,各有特点。
3. 在原先的corrpot()函数中,当排序方式为系统聚类时,可以根据聚类结果直接加框框,具体由rect.hc, rect.col, rect.lwd三个参数控制。当然,也可以在图画完之后,用corr.rect()函数再加,只不过方便性上打了折扣。
目前,CRAN主页上新版已经出炉,国内中科院的两个镜像还没有同步,大约得半天左右吧(香港那个镜像早已废弃)。此外,WINDOWS下默认的图形设备在绘制png等非矢量格式图时,效果欠佳,建议用Cairo包或者cairoDevice包来生成质量较高的png图片。
图1代码如下:
corrplot(cor(mtcars), order="hclust", rect.hc = 3)
再放一个图1和图2的联姻图:
corrplot包的其他问题:
1. DESCRIPTION文件里面的suggests package里面不小心加了个rgl包,悲剧悲剧。
2. corrplot()函数参数过多,现在是38个左右,很多时候我自己都要返回去看看参数意义,显得比较累赘。
3. 变量的文本标签的计算方法不太好,有时得多次调解cex参数,比较麻烦,这个是个比较大的问题。
4. 之前,准备多做做变量排序的事情,后来发现seriation包已经做得非常好了,其中一位作者Kurt还是R core之一,每次提交package时,几乎都是他把关。corrplot包的定位还是轻量级,在维数<50的时候娱乐娱乐。
欢迎广大朋友批评指正。




原来太云的头像就是第一个图啊。这个图很形像哈,关联程度越深,点就越大,颜色也越深,的确对图片的质量要求较高。呵呵,可不可以把坐标轴的标签全部水平放置,竖着看起来有点累。
不算是第一个图,我的是PCA排序的,并且没有分成小块块。
本问题中横着可以,因为单词长度问题,竖着经常会重叠~
去RUC了,向兄台请教VIM:)
呵呵,不敢当,叫我晓伟就行了,互相学习,共同进步,咱得有开源精神@传说中不是七月有R会议吗?到北京参加吗?
要的,希望能聆听王兄的演讲啊:)
呵呵,我是当听众去学习的,演讲的水平还达不到。到时候就能提前见面了@
额,网卡了,回复了两遍,单词长的话,可以考虑相对坐标轴倾斜45度。
大胆演讲嘛,大家都是初学者,谈什么都行的。我们要有开源精神嘛,哈哈
太云,你这个框框很有意思
又加了个图3,把前两个整合在一起了
呵呵,娱乐、消遣而已~
呵呵,还一直没用过。今天拿来用了一下。好话就不说了,提点意见。
其实图的本质跟R内置的heatmap很像,但做得更漂亮,更灵活。但缺点也有,因为局限于相关系数,所以显示范围只有-1~1,而如果我想可视化若干个集合间重叠,首先是需要自己做normalization,然后是corrplot产生的那个legend也只能是这个范围,或者用cl.range调整成更小的范围,没法表达两个集合间重叠元素的数量。不知道是不是我看文档不仔细。
建议是不要局限于相关矩阵,可以放宽到任何类型的矩阵的可视化:)
把非-1~1的元素调整到-1到1之间的装换方法很多,这一步我觉得应该留给使用者本人。只要放宽legend的范围,这样也就放宽到任何类型的矩阵可视化了吧。
此外,cl.range的意思你的理解有误,只是两种颜色坐标的绘图方式而已。
如何放宽legend的范围?
比如,8~54
这个还没弄的,目前还不支持的:(
呵呵,嗯,个人觉得这个很实用。
Rforge上已经加了~
现在是0.3版了,第一个图的那个参数rect.hc是改成addrect了吧
准备用你这包来画图
Thanks!