temp.sp
という名前のデータフレームの列に応じて、(連続)値で色分けされた国の世界地図を作成しています。これらのマップのいくつかをグラフに入れたいと思います。 をgeom_map
とし、それぞれのマップを構成し、multiplot()
を使ってグラフを構築して表示すると、grid
コードが使用されます。geom_mapがgSimplifyで簡略化されたGeoJSONマップで失敗する
私はGeoJSONマップ(world <- readOGR(dsn = "ne_50m_admin_0_countries.geojson", layer = "OGRGeoJSON")
)を使用しています。結果として得られるSpatialPolygonsDataFrame
は4.1Mbであり、worldMap <- broom::tidy(world, region = "iso_a3")
の結果のデータフレームは93391行です。ですから、4つのプロットファイルでmultiplotを実行すると、時間がかかります。
world.simp <- gSimplify(world, tol = .1, topologyPreserve = TRUE)
のようなコードを使用してgSimplify
で世界地図を単純化して印刷を高速化できると思っていました。結果のデータフレームworldMap.simp
には27033行しかありませんが、このマップを使用するとエラーメッセージError in unit(x, default.units) : 'x' and 'units' must have length > 0
が表示されます。
このコードをworldMap.simpで実行すると、エラーメッセージが生成されます。私はworldMapを使用するときに問題はありません。
gg <- ggplot(temp.sp, aes(map_id = id)) gg <- gg + geom_map(aes(fill = temp.sp$value), map = worldMap.simp, color = "white")
。
私はtemp.sp $値を因数に変換しようとしましたが、違いはありませんでした。要約すると、gSimplifiedマップを使用すると、ggplotおよびgeom_mapを使用して生成されたグラフの表示が失敗します。