2015-12-13 4 views
3

Я визуализировал матрицу с решетчатым пакетом R, чтобы получить сетку 10x10.R: легенды в функции решетки

К сожалению, у меня есть некоторые проблемы, связанные с филетированием.

Цветной шаблон должен иметь пояснительное название (написанное вертикально рядом с ним).

Вот пример кода, чтобы увидеть, как он выглядит сейчас, плюс изображение.

library(lattice) 

#Build the horizontal and vertical axis information 

hor=c("0.0005", "0.001", "0.005", "0.01", "0.05", "0.1", "0.5", "1", "5", "10") 
ver=c("1000","2000","3000","4000","5000","6000","7000","8000","9000","10000") 

nrowcol=length(ver) 
cor = matrix(runif(nrowcol*nrowcol, min=0.4), nrow=nrowcol, ncol=nrowcol, dimnames = list(hor, ver)) 
for (i in 1:nrowcol) cor[i,i] = 1 

rgb.palette <- colorRampPalette(c("blue", "yellow"), space = "rgb") 
levelplot(cor, col.regions=rgb.palette(120), cuts=100, at=seq(0,1,0.01), 
      xlab=expression("DAG depletion rate k"[B49] *" [ s"^"-1"*" ]"), 
      ylab=expression("PKC activation rate k"[D5] *" [ l/(mol*s) ]")) 

У вас есть предположение, как я могу исправить эти небольшие проблемы?

Лучшее и спасибо большое!

enter image description here

ответ

4

Добавьте эти строки настраивая х и у позиции по мере необходимости:

library(grid) 
grid.text("Here is some text explaining the legend", .77, .5, rot = 270) 

screenshot

1

Я не мог понять, как добавить легенду, используя levelplot(), но это довольно просто, чтобы воссоздать свой участок, используя ggplot «s geom_tile. Вот что я получил:

library("ggplot2") 
this = melt(cor, id.vars = row.names(cor)) 
ggplot(this) + 
    geom_tile(aes(x = factor(Var1), y = factor(Var2), fill = value)) + 
    scale_fill_continuous(high = "yellow", low = "slateblue4", name = "Your Legend Title") + 
    ggtitle("Your Title") + 
    xlab(expression("DAG depletion rate k"[B49] *" [ s"^"-1"*" ]")) + 
    ylab(expression("PKC activation rate k"[D5] *" [ l/(mol*s) ]")) + 
    theme_bw() 

enter image description here

Точная настройка в ggplot довольно хорошо документированы, так что вы, вероятно, будет в состоянии делать то, что вам нужно. Полное раскрытие: если ваши координаты x и y не равномерно распределены, geom_tile не всегда будет знать, как заполнить пробелы. Заметил, что мне пришлось преобразовать Var1 и Var2 в факторы. Сообщение This дает несколько хороших идей о том, как справиться с этой проблемой.