R:格函数中的图例

R:格函数中的图例,r,legend,lattice,colorbar,R,Legend,Lattice,Colorbar,我用R的晶格包可视化了一个矩阵,得到了一个10x10的网格 不幸的是,我在微调方面确实存在一些问题 颜色栏需要一个解释性标题(垂直写在旁边) 下面是一个示例代码,以查看它现在的外观以及一张图片 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") ve

我用R的晶格包可视化了一个矩阵,得到了一个10x10的网格

不幸的是,我在微调方面确实存在一些问题

颜色栏需要一个解释性标题(垂直写在旁边)

下面是一个示例代码,以查看它现在的外观以及一张图片

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) ]"))
库(晶格)
#建立水平轴和垂直轴信息
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=长度(版本)
cor=矩阵(runif(nrowcol*nrowcol,min=0.4),nrow=nrowcol,ncol=nrowcol,dimnames=list(hor,ver))
对于(i in 1:nrowcol)cor[i,i]=1

rgb.palete我不知道如何使用
levelplot()
添加图例,但是使用
ggplot
geom\u 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()


ggplot
中进行微调已经有了很好的文档记录,因此您可能能够完成所需的工作。但要充分披露:如果x和y坐标的间隔不均匀,
geom_tile
将不知道如何填充空间。注意到我必须将Var1和Var2转换为因子。这篇文章给出了一些处理这个问题的好方法

根据需要添加这些线来调整x和y位置:

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