2

ggplot2を使用してファクター値でラスターをプロットするのに問題があります。

library(ggplot2)
library(raster)

まず、ラスターデータを読み込みます

f <- system.file("external/test.grd", package="raster")
r <- raster(f)

座標と値を抽出する

val <- getValues(r)
xy <- as.data.frame(xyFromCell(r,1:ncell(r)))
xy <- cbind(xy,val)

geom_raster()を使用してグリッドをプロットします。すべてが正常に動作します。

ggplot(xy, aes(x=x, y=y, fill=val)) + geom_raster() + coord_equal()

連続ラスターはありませんが、分類されています。ラスターを再分類します。

r <- reclass(r, c(0,500,1, 500,2000,2))

val <- getValues(r)
xy <- as.data.frame(xyFromCell(r,1:ncell(r)))
xy <- cbind(xy,val)

分類されたラスターをプロットします。またOKですが、伝説は継続的です

ggplot(na.omit(xy), aes(x=x, y=y, fill=val)) + geom_raster() + coord_equal()

値を因子としてプロットすると、マップが正しくなくなります

ggplot(na.omit(xy), aes(x=x, y=y, fill=factor(val))) + geom_raster() + coord_equal()
4

1 に答える 1

2

再分類されたプロットのプロットは、R バージョン 2.15.1、ggplot2_0.9.2.1、および raster_2.0-12 を使用して機能します。該当する場合は、R、パッケージ、および依存関係を更新してみてください。あなたのコードのわずかに変更されたバージョンから進んでください:

f <- system.file("external/test.grd", package="raster")
r <- raster(f)
r <- reclassify(r, c(0,500,1, 500,2000,2))
val <- getValues(r)
xy <- as.data.frame(xyFromCell(r,1:ncell(r)))
xy <- cbind(xy,val)
ggplot(na.omit(xy), aes(x=x, y=y, fill=val)) + geom_raster() + coord_equal()
p <- ggplot(na.omit(xy), aes(x=x, y=y, fill=factor(val))) + 
  geom_raster() + 
  coord_equal()
try(ggsave(plot=p,<some file>,height=8,width=8))

私は得る: グラハム・ジェフリーズ - 再分類されたラスター

classify()減価償却されておりreclassify()、その代替であることに注意してください。

于 2012-11-02T16:52:11.790 に答える