1

R データにいくつかの形状ファイルが保存されています。私は最初に以下を実行します

library(sp)

次に、次のコードを実行します。

pdf("OurMaps.pdf", width=11, height=8.5)
par(mfrow=c(2,3))

spplot(sh1998, zcol="lulc.1", col.regions=colorcode, col="transparent")
spplot(sh1999, zcol="lulc.1", col.regions=colorcode, col="transparent")
spplot(sh2002, zcol="lulc.1", col.regions=colorcode, col="transparent")
spplot(sh2003, zcol="lulc.1", col.regions=colorcode, col="transparent")
spplot(sh2009, zcol="lulc.1", col.regions=colorcode, col="transparent")
spplot(sh2014, zcol="lulc.1", col.regions=colorcode, col="transparent")

dev.off()

このコードで必要なのは、複数の形状ファイルが複数のパネルにプロットされる PDF ファイルを用意することだけです。ただし、このコードは出力を提供していません。コードのどこが間違っていますか?

4

1 に答える 1

3

par(mfrow=c(2,3))基本グラフィックス システムにのみ使用できます。このsp関数は、グラフィック エンジンを使用spplot()するlatticeグラフィック システムを使用します。gridこれは R 用の低レベルのグラフィックス システムです。どちらのパッケージもベース R ディストリビューションの一部です。

lattice関数が class のオブジェクトを返すため、 (スクリプトで)trellis明示的な print ステートメントが必要なため、出力を確認できません。R FAQ 7.22print(spplot(...))を参照してください: ラティス/トレリス グラフィックが機能しないのはなぜですか?

最も可能性の高い理由は、R にグラフを表示するように指示するのを忘れたことです。xyplot() などのラティス関数はグラフ オブジェクトを作成しますが、表示しません (ggplot2 グラフィックスと S-PLUS の Trellis グラフィックスについても同様です)。グラフ オブジェクトの print() メソッドは、実際の表示を生成します。これらの関数をコマンド ラインで対話的に使用すると、結果が自動的に出力されますが、source() または独自の関数内で明示的な print() ステートメントが必要になります。

パッケージgrid.arrange()から使用できる複数のプロットを配置します。gridExtra

library("gridExtra")
library("lattice")

p <- xyplot(1~1)
grid.arrange(p, p, p, p, p, p, ncol=2, nrow=3)

grid.arrange の例

于 2014-12-20T10:34:37.760 に答える