R:如何将光栅图像/矩阵值转换为系列,以获得多个光栅图像的箱线图?

R:如何将光栅图像/矩阵值转换为系列,以获得多个光栅图像的箱线图?,r,ggplot2,raster,boxplot,R,Ggplot2,Raster,Boxplot,我有一系列表示温度数据的tiff文件(~40个文件),对于每个文件,我想得到一个简单的值分布箱线图。我知道如何直接盒状打印光栅文件;但是,我想使用ggplot(需要DataFrameBase)以特定的方式排列各个绘图 理想情况下,解决方案将提供一个数据框,其中每个光栅图像的值由一列表示,因为数据的x-y位置并不重要,但我不确定最佳解决方案是什么?您可以使用以下代码 library(tidyverse) library(raster) #Make a list of the files file

我有一系列表示温度数据的tiff文件(~40个文件),对于每个文件,我想得到一个简单的值分布箱线图。我知道如何直接盒状打印光栅文件;但是,我想使用ggplot(需要DataFrameBase)以特定的方式排列各个绘图


理想情况下,解决方案将提供一个数据框,其中每个光栅图像的值由一列表示,因为数据的x-y位置并不重要,但我不确定最佳解决方案是什么?

您可以使用以下代码

library(tidyverse)
library(raster)

#Make a list of the files
files <- list.files(path="E:\\...", #Provide the path containing the tif files
                    pattern="tif", full.names=TRUE, recursive=TRUE)

#Stack rasters
Stack <- stack(files)

#Convert the rasters into data frame
df <- as.data.frame(Stack, xy=TRUE) %>% 
  drop_na()

#Create boxplot for each raster layer
df %>% 
  pivot_longer(-c(x, y)) %>% 
  ggplot(aes(x = name, y = value)) +
  geom_boxplot()
库(tidyverse)
图书馆(光栅)
#列一个文件清单
文件%
ggplot(aes(x=名称,y=值))+
geom_箱线图()

这非常有效,非常感谢!