我使用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) ]"))
你猜怎么解决这些小问题?
最好,非常感谢你!
答案 0 :(得分:4)
根据需要添加这些线来调整x和y位置:
library(grid)
grid.text("Here is some text explaining the legend", .77, .5, rot = 270)
答案 1 :(得分:1)
我无法弄清楚如何使用levelplot()
添加图例,但使用ggplot
的{{1}}重新创建图表非常简单。这就是我得到的:
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()
中的微调记录非常清楚,因此您可能能够做到所需。但是完全公开:如果您的x和y坐标不是均匀间隔,ggplot
将不会总是知道如何填充空格。注意到我必须将Var1和Var2转换为因子。 This帖子提供了一些如何处理此问题的好主意。