我在R中有以下数据框:
df <- data.frame(a = c(0, 0, 1, 1),
b = c(0, 1, 0, 1),
col = c("red", "green", "green", "yellow"))
我感兴趣的是导出一个光栅图像文件(png,tif等),它将为数据框中的每个条目包含一个像素,并使用适当的颜色。对于上面的示例,将有一个2 x 2的图像文件,如下所示:
我觉得raster
包可能有用,但据我所知它只能导出地理空间栅格图像类型而不是普通图像。
答案 0 :(得分:0)
这可以使用tiff
包:
library(tiff)
df <- data.frame(a = c(0, 0, 1, 1),
b = c(0, 1, 0, 1),
col = c("red", "green", "green", "yellow"))
mina <- min(df$a)
minb <- min(df$b)
maxa <- max(df$a)
maxb <- max(df$b)
colarray <- array(data = NA,
dim = c(maxb - minb + 1,
maxa - mina + 1,
3))
for (k in 1:nrow(df))
{
colarray[df[k, 2] - minb + 1,
df[k, 1] - mina + 1,
] <- col2rgb(df[k, 3]) / 255
}
writeTIFF(colarray, "res.tif", compression = "LZW")
它可能更简洁一点,但对于x&amp; y坐标不一定是0到n的情况,这种方法效果更好。
这将使用png
等相关包进行相同的操作。