Ich habe vor kurzem auf die R-Version 3.2.3
und auch auf die ggplot-Version 2.0.0
aktualisiert.
Beim Versuch, alten Code auf die neueren Versionen zu aktualisieren, ist mir ein merkwürdiges Verhalten mit ggplot2 und seinen Transparenzeinstellungen aufgefallen.
Nun ist meine Frage, ist das ein Fehler oder eine Funktion (wenn ja, kann mir jemand erklären, warum es gut ist, es so zu haben)? Das Ergebnis, das ich haben möchte, ist (offensichtlich) Handlung 2.
Sagen Sie, ich zeichne eine Linie und lege ein Rechteck mit Transparenz darüber:
%Vor%Nach meinem Verständnis sollten Handlung 1 und 2 identisch sein. Allerdings bekomme ich folgende Plots:
Plot 1:
und Plot 2:
Zusätzlich, wenn ich mit den alpha
-Werten herumspiele (zum Beispiel, wenn ich sie auf 0.01
setze, erhalte ich die zwei folgenden Plots:
und
Ich glaube, dass das Aufrufen von geom_rect
ohne einen data
-Parameter effektiv ein einzelnes Rechteck für jede Zeile von data.frame
zeichnet, weshalb alpha
"funktioniert", aber nicht ganz wie erwartet. Ich war nicht in der Lage zu replizieren und zu Parität / Übereinstimmung zwischen den Methoden zu kommen, aber wie Sie angemerkt haben, denke ich, dass es etwas in Richtung der Zeichnung von 100 einzelnen Rechtecken oder 30 (die Breite der Rechtecke; von 20 bis 50) weshalb alpha = 0.1 / 100
und alpha = 0.1 / 30
dich näher bringen, aber nicht ganz übereinstimmen.
Unabhängig davon würde ich wahrscheinlich annotate
verwenden, da dies das Verhalten / Ergebnis, das Sie ohne Probleme erreichen wollen, besser beschreibt, als erwartet, in beiden Fällen - annotations
zeichnet eine einzelne Instanz pro geom
: