5

この質問で @Mike と同様の問題があります。問題は、マップ プロットで領域の輪郭の色を設定する方法です。

geom_polygon提案された解決策は、境界線の上にプロットするために a を追加することです。これは、領域全体がプロットされている限り機能します。サブエリアに制限しようとすると、ポリゴンが奇妙に描画されます (おそらく、一部の頂点がドロップされるため)。標準的なgeom_map例を使用します。

# Create example data
ids <- factor(c("1.1", "2.1", "1.2", "2.2", "1.3", "2.3"))
values <- data.frame(id = ids, value = c(3, 3.1, 3.1, 3.2, 3.15, 3.5))
positions <- data.frame(
  id = rep(ids, each = 4),
  x = c(2, 1, 1.1, 2.2, 1, 0, 0.3, 1.1, 2.2, 1.1, 1.2, 2.5, 1.1, 0.3, 0.5, 1.2, 2.5, 1.2, 1.3, 2.7, 1.2, 0.5, 0.6, 1.3),
  y = c(-0.5, 0, 1, 0.5, 0, 0.5, 1.5, 1, 0.5, 1, 2.1, 1.7, 1, 1.5, 2.2, 2.1, 1.7, 2.1, 3.2, 2.8, 2.1, 2.2, 3.3, 3.2)
)

# Plot data
ggplot(values, aes(fill = value)) + 
    geom_map(aes(map_id = id), map = positions) +
    geom_polygon(aes(x,y,group=id), fill = NA, colour = 'red', data = positions) +
    expand_limits(positions) +
    ylim(0, 3)

考えられる回避策は、次のように で色の美学を使用してgeom_mapから、 で輪郭の色を手動で選択することです。scale_colour_manual

ggplot(values, aes(fill = value)) + 
    geom_map(aes(map_id = id, colour = 'white'), map = positions) +
    scale_colour_manual(values=c('white')) +
    expand_limits(positions) +
    ylim(0, 3)

だから私は2つの質問があります:

  1. geom_polygon軸の制限が拘束されていると、正常に動作しないのはなぜですか?
  2. ここで示したものよりも、アウトラインを色付けするためのよりエレガントなソリューションはありますか?

以下はプロット出力です。よろしくお願いします。

geom_polygon を使用すると正しく動作しませんでした 機能しますが、あまりエレガントではありません

4

1 に答える 1

8

なぜそれが機能しないのかについては、あなたが正しいと思います。xlimプロットの前にデータを使用またはylimクリップして x または y の範囲を制限します。これにより、ポリゴンからいくつかの頂点が省略されるため、一部のものはプロットされません。

これが、データをクリップせずcoord_cartesianに x と y の制限を調整できる がある理由です。クリッピングしてからプロットするのではなく、正しい領域に「ズーム」します。

ではなく、ylimを試してみてください+ coord_cartesian(ylim = c(0,3))

于 2012-05-13T15:26:56.833 に答える