ggplot2でリボンをカラーリングしようとしています。 geom_ribbonを使用する場合は、yminとymaxと塗りつぶしの色を指定できます。現在は、yminとymaxの間にあるすべてのものに、上限または下限に関係なく着色しています。 (インターネットから変更)ggplot2:geom_ribbonの色の動作を塗りつぶします
例:
library("ggplot2")
# Generate data (level2 == level1)
huron <- data.frame(year = 1875:1972, level = as.vector(LakeHuron), level2 = as.vector(LakeHuron))
# Change Level2
huron[1:50,2] <- huron[1:50,2]+100
huron[50:90,2] <- huron[50:90,2]-100
h <- ggplot(huron, aes(year))
h +
geom_ribbon(aes(ymin = level, ymax = level2), fill = "grey80") +
geom_line(aes(y = level)) + geom_line(aes(y=level2))
私は異なる色で、領域、(YMIN> YMAX)を充填したいです(ymin < ymax)よりも大きい。私の実際のデータには、輸出と輸入の価値があります。そこでは、輸出が輸入グリーンより高い地域を色付けしたいと思います。輸入が輸出よりも大きいのは、リボンを赤にしたいのです。
代替:私は、geom_ribbonに領域を塗りつぶしたいと思います。ここで、ymax> yminです。
これはどのように行われたのですか?
ありがとうございました。
これは素晴らしいです、ありがとうございます!私が欲しかったのは基本的に条件を 'fill ='に入れることができるからです。しかし、私は完全ではないので私の変更要求を開いたままにしておきます:充填は交差点に完全には適用できません。 (今回は私にとっては問題ありません)また、ggplot2の充てんロジックを変更する必要があると私はまだ考えています。 – ManuK
スーパーに役立つ!長い形式のデータで同じ結果を達成する方法はありますか?たとえば、データをYear、Level(1または2)、Valueとして設定します。 h + geom_line(aes(y = Value、group = Level))までは取得できますが、この構造体でgeom_ribbon()レイヤーを追加する方法を見つけることはできません。 –
簡単にはありません。 'ggplot2'は列を期待するので、' ymin'と 'ymax'の値として使うカラムが必要です。長いデータを必要なフォーマットに' tidyr :: spread() 'するのはかなり簡単です。 –