3

ggplot で複数のポリゴンのオーバーレイを作成したいと思います。オーバーレイの塗りつぶしは透明にする必要がありますが、境界線は赤にする必要があります。最初のポリゴンの塗りつぶしだけを見たいので、オーバーレイを透明にすることを考えました...しかし、完全に透明にすることはできません。どういうわけか、塗りつぶしの色を塗りつぶしなしとして定義する方が簡単でしょう...しかし、その方法がわかりません。何か案は?

例を再現するためのコードを次に示します。

    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)
    )

    datapoly <- merge(values, positions, by=c("id"))

    p <- ggplot(datapoly, aes(x=x, y=y)) + geom_polygon(aes(fill=value, group=id))
    # overlay the same plot with red borders and transparent fill
    p <- p + geom_polygon(aes(group=id, alpha=1),colour="red",size=1.1)
    p

オーバーレイなし オーバーレイ付き

4

1 に答える 1

5

の 2 番目のセットをgeom_polygon入力しない場合は、 を に設定fillNAます。

ggplot(datapoly, aes(x=x, y=y)) + 
  geom_polygon(aes(fill=value, group=id)) +
  geom_polygon(aes(group=id), alpha=1,colour="red", fill=NA, size=1.1)

ここに画像の説明を入力

この場合、2 回のgeom_polygon呼び出しは必要ありませんが、

ggplot(datapoly, aes(x=x, y=y)) + 
  geom_polygon(aes(fill=value, group=id), colour="red", size=1.1)
于 2013-02-05T20:49:11.320 に答える