2016-11-01 9 views
1

В пакете rcorrplot вы можете смешать тип фигуры в нижней и верхней половине корреляционной матрицы, чтобы сделать приятный визуальный эффект. Я хотел бы иметь числа в нижней половине моей матрицы и эллипсы в верхней половине матрицы - все в порядке. Но с моими данными я не вижу некоторых чисел корреляции, так как они близки к нулю. Ниже приведен код, который я использую и текущий вывод.Изменить цвет текста в corrplot.mixed

Есть ли способ изменить цвет текста для нижней половины матрицы? Я бы хотел изменить цвета коэффициентов корреляции, чтобы они не были белыми (они не должны быть красными до синих, черные - в порядке).

#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) 

enter image description here

ответ

5

Они имеют пример этого похороненный в ?corrplot (это под "круг + черный числом"). Похоже, вам нужно дважды позвонить 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 не могут).

2

Начиная с версии corrplot версии 0.84, теперь возможно иметь различный цветной текст и эллипсы, как задокументировано here. Например,

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

указывает, что текст в нижней части матрицы черный.