如何使用R代码在已存在的png图像的右上角添加色标?

时间:2018-08-09 04:58:25

标签: r image colors

如何使用R代码在已存在的png图像的右上角添加色标? 色标由“ KEGGprofile” R包装制成。代码是:

col = col_by_value(temp, col=colorRampPalette(c('yellow','white','blue'))(1024), range=c(min(temp),max(temp))).

临时数据为:

Proteome    Phosphoproteome
10365   0.1936665   0.8226708
3320    -0.6043064  0.3554265
596 -1.8526172  -0.4719894
6300    1.2375722   1.3151508
659 0.1260142   -0.6054770
858 -1.4846932  1.6420495

色标如下:

enter image description here enter image description here

存在的png图像如下:

enter image description here enter image description here

如何缩小和旋转色阶图并将其粘贴到png图像中(如下所示)。数字是色阶也可以清楚。

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用功能readPNG来读取现有图形,使用rasterImage绘制图形并使用image.plot添加色标。而horizontal函数中的参数image.plot可以旋转图例,而smallplot可以调整图例的大小。顺便说一句,您可以通过axis.args参数来调整图例比例的大小。

library(png)
library(graphics)
library(grDevices)
library(fields)

img=readPNG("hsa00310_profile_bg.png")
width=ncol(img)
height=nrow(img)
png(file="hsa00310_profile_bg.png",width=width,height=height)
par(yaxs="i")
par(xaxs="i")
par(mar=c(0,0,0,0))
plot(c(0,width), c(0,height), type='n', xlab="", ylab="")
rasterImage(img, 0, 0, width, height,interpolate=F)
image.plot(legend.only=T, zlim=c(-2,2), col=colorRampPalette(c('yellow', 'white', 'red'))(1024), horizontal 
=TRUE, legend.shrink=0.1, smallplot = c(.9,.99, .92,.95), axis.args = list(cex.axis = 2))
dev.off()

enter image description here