R:格点函数中的传奇

3

我使用R的lattice包可视化矩阵,得到一个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) ]"))

你有没有猜测如何解决这些小问题?

最好的方式,非常感谢!

输入图像描述

2个回答

5
将以下内容添加,根据需要调整x和y的位置:

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

screenshot


1

我不知道如何使用levelplot()添加图例,但是使用ggplotgeom_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转换为因子。帖子提供了一些处理此问题的好方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接