Я пробовал использовать все варианты цветной панели в corrplot. Однако, когда отображаемая матрица очень тонкая (небольшое количество столбцов), цветовая полоса, кажется, выходит за пределы правого поля. Как этого избежать? Есть ли параметр для управления интервалом?
# Create the matrix
mat <- matrix(c(0.8, 0.6, 1, 0.2, 0, 0.2, 0.3, 0.4, 0.3,
-0.8, -0.6, -1, -0.2, 0, -0.2, -0.3, -0.4, -0.4),
ncol = 2, byrow = TRUE)
corrplot(mat, method = c("color"),
cl.ratio = 1,
# cl.offset = 0.5,
# cl.align.text = "l",
)





Способ, которым corrplot вычисляет ширину и высоту графика, жестко запрограммирован и не может быть изменен с помощью аргументов.
Временным решением может быть изменение пакета corrplot. Это изменение будет действовать только до закрытия сеанса R.
В консоли напишите:
trace(corrplot, edit=TRUE)
Переменная mm используется для определения ширины и высоты графика. Для тонких матриц это значение очень мало, в вашем случае 1, поэтому для графика будет выделено недостаточно места.
В строке 166 напишите:
mm = ifelse(mm < 6, 6, mm)
Сохрани это. Теперь ваш график выглядит следующим образом (обратите внимание, что вам нужно уменьшить cl.ratio до рекомендуемого значения):
library(corrplot)
# Create the matrix
mat <- matrix(c(0.8, 0.6, 1, 0.2, 0, 0.2, 0.3, 0.4, 0.3,
-0.8, -0.6, -1, -0.2, 0, -0.2, -0.3, -0.4, -0.4),
ncol = 2, byrow = TRUE)
corrplot(mat, method = c("color"), cl.ratio = 0.15)
Вы можете поиграть со значением 6 в приведенном выше коде. Чем больше это значение, тем больше пространство между графиком и полосой.
Для матриц с небольшим количеством строк значение nn следует изменить аналогично строке 163: nn = ifelse(nn < 6, 6, nn).
Я внесу эти изменения в проект corrplot.
Удивительный! Большое спасибо!
corrplot()откуда экспортировано?