首页 > 解决方案 > 如何使用 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()

这是我获得的图片: 在此处输入图像描述

如何在图例上添加更多细节作为图例中每个数字的单位和文本?

标签: rimagematrixlegend

解决方案


您可以开始使用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")

在此处输入图像描述


推荐阅读