如何在is.corr = FALSE

问题描述

我以前使用corrplot(my plot)制作了漂亮的功能和完美的实际腐蚀图。现在,我必须以相同的外观获取基础数据。因此,我的目标是使三角形相似度矩阵的颜色与我的Corrotation图相同。想象一下,就像excel中的条件格式一样。

我的数据:my Data from excel

Link to CSV Data file

它作为csv加载,可以完美读取csv

我的代码corrplot(Phylogeny,is.corr=FALSE,method="number",cl.lim=c(0,1))

引发我的错误Error in if (any(corr < cl.lim[1]) || any(corr > cl.lim[2])) { : Missing value,where TRUE/FALSE is required

  • 我确保所有列都是数字
  • 我确保用NA填充丢失的位(因为以前这是个问题)
  • 我确保我的所有值都在0到1之间,就像我希望极限值一样(在这之间,当我尝试某些操作时,它告诉我我的值不在极限范围内)
  • 更改限额后错误不会更改
  • 当我将is.corr = FALSE取出(认值= TRUE)时,错误不会改变
  • 我玩着corrplot.mixed,但仍然无法正常工作
  • 一直在引用来自Corrplot Intro的信息

我已经研究过condformat function,但是我不确定是否可以像我在我的Corrotation图中所使用的那样根据整体梯度用一种颜色填充每个单元格。

在这里想不想不想把漂亮的颜色给我的桌子回来吗?

解决方法

我遇到了同样的错误,但我能够通过将 data.frame 转换为 matrix 来修复它。我最终得到了 corrplot(as.matrix(df),is.corr = FALSE)

,

如果我的理解正确的话,您发布的数据已经是一个相关矩阵 - 尽管不是在原始数据上调用 cor 会产生的那种完全对称的矩阵。

在这种情况下,问题只是您将变量名称(物种)作为数据中的一列。将此列更改为行名称,删除变量名称,并按照 user9536160 的建议调用 corrplot

# read in your data    
phyl <- as.data.frame(read_csv("Phylogeny.csv"))

# name rows and drop variable names in the df itself
row.names(phyl) <- phyl$Species
phyl <- phyl %>%
  select(-Species)

# call corrplot
corrplot(as.matrix(phyl),is.corr = FALSE)

结果:

corrplot result