在r
包corrplot
中,您可以在相关矩阵的下半部分和上半部分混合使用图形类型,以获得良好的视觉效果。我想在矩阵的下半部分有数字,在矩阵的上半部分有椭圆 - 这一切都很好。但是,根据我的数据,我看不到一些相关数字,因为它们接近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)
答案 0 :(得分:7)
他们将这个例子埋没在?corrplot
中(它在&#34;圆圈+黑色数字&#34;下面)。看起来你必须两次调用corrplot
:一次先绘制椭圆(彩色),然后再分别绘制系数(指定颜色=黑色),因为如果指定col="black"
corrplot.mixed
省略号也是黑色。
另外,如果您查看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
可以&#t;}。
答案 1 :(得分:3)
从corrplot
版本0.84开始,现在可以使用不同的颜色文本和省略号here。例如,
corrplot.mixed(MyMatrix, lower.col = "black", number.cex = .7)
指定矩阵下半部分的文本为黑色。