corrRect在corrplot混合图中绘制矩形报错的解决方法咨询
解决corrRect在混合corrplot中报错的问题
报错原因
corrRect函数内部依赖corrplot返回对象的type属性(判断是upper/lower/full类型),但corrplot.mixed()生成的是上下混合的矩阵图,返回的对象中没有这个type属性,导致内部的if判断因type长度为0而抛出Error in if (type == "upper") { : argument is of length zero错误。
解决方案
调用corrRect时手动指定type参数,明确要绘制矩形的区域(upper对应上半部分、lower对应下半部分);如果需要同时给上下两部分添加矩形,可分别调用两次corrRect。
示例代码
library(corrplot) # 计算mtcars数据集的相关矩阵 cor_mat <- cor(mtcars) # 绘制混合相关矩阵图并保存绘图对象 p <- corrplot.mixed(cor_mat) # 给上半部分的指定变量添加矩形 corrRect(p, name = c("mpg", "qsec", "carb"), type = "upper") # 给下半部分的指定变量添加矩形 corrRect(p, name = c("mpg", "qsec", "carb"), type = "lower")
若仅需给某一部分添加矩形,只需保留对应type参数的调用行即可。
内容的提问来源于stack exchange,提问作者Schillerlocke
相关产品推荐
相关产品推荐

