Ich versuche, Bänder in ggplot2 zu färben. Wenn ich geom_ribbon verwende, kann ich ymin und ymax und eine Füllfarbe angeben. Was es jetzt tut, ist das Färben von allem, was zwischen ymin und ymax liegt, ohne Rücksicht auf die obere Grenze oder untere Grenze.
Beispiel (aus dem Internet geändert):
%Vor%Ich möchte den Bereich mit (ymin & gt; ymax) mit einer anderen Farbe als (ymin & lt; ymax) füllen. In meinen realen Daten habe ich Werte exportieren und importieren. Dort möchte ich den Bereich färben, in dem der Export höher ist als der Import grün, wo der Import größer als der Export ist. Ich möchte, dass das Farbband rot ist.
Alternativ: Ich möchte, dass geom_ribbon nur den Bereich ausfüllt, in dem ymax & gt; ymin.
Weiß jemand, wie das gemacht wird?
Danke für Ihre Hilfe.
Eine Option, bei der nicht manuell eine andere Spalte erstellt werden muss, wäre die Logik in aes(fill =
self;
Oder wenn Sie nur basierend auf dieser Bedingung füllen möchten,
%Vor% Ich nehme an, der Mangel an interpolierter Füllung scheint etwas mit der ggplot2
Version zu tun zu haben, da ich dasselbe mit dem Code von @ rote Beete
Ich bekomme @ ManuKs Bildausgabe, wenn ich diesen Code ohne Logik in aes(fill =
ausführe.
Sie können den Daten, die Sie zum Festlegen der Füllfarbe verwenden können, eine Gruppierungsvariable hinzufügen. Das Problem ist jedoch der Punkt, an dem sich die beiden Linien schneiden, da sie in beiden Gruppen enthalten sein müssen, um Lücken zu vermeiden.
Finde also zuerst diese Zeile ..
%Vor%Und fügen Sie es den Daten noch einmal hinzu:
%Vor%Fügen Sie dann eine ID-Spalte basierend auf dem Zeilenindex hinzu und legen Sie die Gruppen basierend auf der Zeilennummer des Jahres 1924 fest:
%Vor% Um das Problem zu umgehen, das ich mit nicht interpoliertem% co_de% hatte, können Sie zwei (oder fill
) Bänder verwenden
Jede Bedingung, die Sie in n
verwenden, wird es zu einem Faktor zwingen, so dass es nur dort zu gelten scheint, wo die Daten tatsächlich sind. Ich denke nicht, dass dies ein aes(fill =
Bug ist, ich denke das ist ein erwartetes Verhalten.