1

(この質問は難しすぎるかもしれませんし、解決するのに苦労する価値はないかもしれません - しかし、簡単な解決策があれば - 私は知りたいです)

次のようなイメージを (グリッド パッケージを使用して) 作成するとします。

require(grid)
grid.newpage()
grid.polygon(x=c((0:4)/10, rep(.5, 5), (10:6)/10, rep(.5, 5)),
             y=c(rep(.5, 5), (10:6/10), rep(.5, 5), (0:4)/10),
             id=rep(1:5, 4),
             gp=gpar(fill=1:5))

しかし、ここで、一部のポリゴンを部分的に塗りつぶしたい場合はどうすればよいでしょうか (1/3 を塗りつぶし、別の 1/2 を塗りつぶし、もう 1 つを色で完全に塗りつぶすとします)。 .

ポリゴンを構築するときにそれができると思いますが、問題は、私が与えた比率に基づいてのみ新しいポリゴンを計算する何かが必要だと仮定すると、どうすればそれを行うことができるかということです.

私の質問の動機は、ロゴ プロットに関する別の情報層を提示したいということです (パッケージ seqLogo の関数 seqLogo を参照してください)。

ありがとう。

4

1 に答える 1

1

多角形を 2 回描画することで、部分的に塗りつぶすことができます。最初に全体を塗りつぶしなしでアウトラインで描画し、次に塗りつぶしを描画します。これは、単純な長方形の例で簡単に確認できます。

x <- c(left = 0.25, right = 0.75)
y <- c(bottom = 0.1, mid = 0.6, top = 0.9)

grid.newpage()
grid.polygon(x =  rep(x[c("left", "right", "right", "left")], 2),
             y =  y[rep(c("bottom", "top", "bottom", "mid"), each = 2)],
             id = rep(1:2, each = 4),
             gp = gpar(fill = c(NA, "blue")))
于 2011-01-05T13:24:38.717 に答える