r - 如何使用 R 将单位和文本添加到矩阵图像的图例中
问题描述
我有一个以图像形式导出的矩阵,我想将单位和文本添加到我的图例中。这是我的代码:
library(imager)
setwd("C:/Users/Desktop/R/")
#Export matrix as image in folder
jpeg(filename="result.jpeg", width=dim(image)[1], height=dim(image)[2])
image(result, useRaster=TRUE, axes=FALSE, col=c("grey",'yellow','green',"blue"))
grid(nx=(h), ny=(v), col="black", lty="solid")
legend("topleft", legend=c(A, B, C, D),
col=c("grey",'yellow','green',"blue"), pch=15, bg='white',cex=1.5)
dev.off()
如何在图例上添加更多细节作为图例中每个数字的单位和文本?
解决方案
您可以开始使用ggplot
以更好地控制绘图图像:
这需要您将数据格式从矩阵更改为长格式。看这个例子
require(ggplot2)
require(tidyverse)
xsize <- 60
ysize <- 30
result <- matrix(sample(1:4,xsize*ysize,prob = c(.8,.1,.05,.05),replace = TRUE),
nrow = ysize)
result %>%
as.data.frame() %>%
mutate(y = row_number()) %>%
gather(x, value,-y) %>%
mutate(x = as.numeric(str_extract(x,'[0-9]+'))) %>%
ggplot(aes(x = x,y=y, fill = factor(value,labels = c("A","B","C","something else")))) +
labs(fill = "Your legend name here") +
geom_tile(color = "black")