【问题标题】:Change text color in corrplot.mixed更改 corrplot.mixed 中的文本颜色
【发布时间】:2017-03-14 03:29:33
【问题描述】:

rcorrplot 中,您可以在相关矩阵的下半部分和上半部分混合使用图形类型,以获得漂亮的视觉效果。我想在矩阵的下半部分有数字,在矩阵的上半部分有椭圆 - 这都很好。但是,根据我的数据,我看不到一些相关数字,因为它们接近 0。下面是我正在使用的代码和当前输出。

有没有办法改变矩阵下半部分的文本颜色?我想将相关系数的颜色更改为不是白色(它们不需要从红色变为蓝色,黑色就可以)。

#Saves the correlation matrix for reproducibility
#The matrix was modified based on the answer here: http://stackoverflow.com/a/36893890/5623577
cormatx <- structure(c(1, 0.480473436029381, 0.727971392165508, 0.0755790813842022, 
0.647226624978262, 0.706156814758194, 0.73971915882987, 0.073024457099958, 
0.480473436029381, 1, 0.540515552878261, 0.106196818240067, 0.505171500429873, 
0.480694458288349, 0.538693541543583, 0.158300667842954, 0.727971392165508, 
0.540515552878261, 1, 0.111168537597397, 0.587432598932939, 0.673406541830384, 
0.724533755640279, 0.139232852746538, 0.0755790813842022, 0.106196818240067, 
0.111168537597397, 1, -0.0844917222701804, 0.0382605955575862, 
-0.00462812019681349, 0.000406894700952559, 0.647226624978262, 
0.505171500429873, 0.587432598932939, -0.0844917222701804, 1, 
0.668544141384562, 0.761303240927891, 0.152127182963817, 0.706156814758194, 
0.480694458288349, 0.673406541830384, 0.0382605955575862, 0.668544141384562, 
1, 0.772678948045676, 0.119611111043454, 0.73971915882987, 0.538693541543583, 
0.724533755640279, -0.00462812019681349, 0.761303240927891, 0.772678948045676, 
1, 0.174453831824302, 0.073024457099958, 0.158300667842954, 0.139232852746538, 
0.000406894700952559, 0.152127182963817, 0.119611111043454, 0.174453831824302, 
1), .Dim = c(8L, 8L), .Dimnames = list(c("A. SAT Critical Reading", 
"B. SAT Mathematics", "C. SAT Writing Multiple Choice", "D. SAT Essay", 
"E. TOEFL Listening Comprehension", "F. TOEFL Structure and Written Expression", 
"G. TOEFL Reading Comprehension", "H. TOEFL Test of Written English"
), c("A", "B", "C", "D", "E", "F", "G", "H")))

#Creates the corrplot
corrplot.mixed(cormatx, upper = "ellipse", lower = "number",
               tl.pos = "lt", tl.col = "black", tl.offset=1, tl.srt = 0)

【问题讨论】:

    标签: r r-corrplot


    【解决方案1】:

    他们在?corrplot 中有一个这样的例子(它在“圆圈+黑色数字”下)。看起来您必须调用corrplot 两次:一次先绘制椭圆(彩色),然后再分别绘制系数(指定例如颜色=黑色),因为如果您在corrplot.mixed 中指定col="black"椭圆也将是黑色的。

    此外,如果您查看corrplot.mixed 代码,您会看到它将相同的... 传递给上调用和下调用,这就是为什么指定例如colour="black" 变为 corrplot.mixed 会将您的椭圆和文本都绘制为黑色,而不仅仅是文本。

    # draw ellipses + decorations
    corrplot(cormatx, type="upper", method="ellipse",
             tl.pos="lt", tl.col="black",  tl.offset=1, tl.srt=0)
    # draw labels in black (disabling all the other stuff already drawn)
    corrplot(cormatx, add=T, type="lower", method="number",
             col="black", diag=F, tl.pos="n", cl.pos="n")
    # if you don't like the lines on the diagonal, (ie diag="n" of corrplot.mixed),
    #  having a look at corrplot.mixed yields the following code:
    n <- nrow(cormatx)
    symbols(1:n, n:1, add=TRUE, bg="white", fg="grey", inches=F, squares=rep(1, n))
    

    有点痛。本质上,您是在自己实现corrplot.mixed,唯一的区别是您可以将单独的额外参数传递给上层和下层(corrplot.mixed 不能)。

    【讨论】:

      【解决方案2】:

      corrplot 0.84 版开始,现在可以使用here 中记录的不同颜色的文本和省略号。例如,

      corrplot.mixed(MyMatrix, lower.col = "black", number.cex = .7)

      指定矩阵下半部分的文本为黑色。

      【讨论】:

      • corrplot.mixed 真的可以包含绘图的调色板吗?
      猜你喜欢
      • 1970-01-01
      • 2010-11-18
      • 2012-11-27
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多