Erzwinge ggplot legende, um alle Kategorien anzuzeigen, wenn keine Werte vorhanden sind [duplizieren]

8

Ich versuche, ggplot zu zwingen, die Legende anzuzeigen und die Farben für einen Faktor zu fixieren, selbst wenn kein Wert in einem Bereich vorhanden ist.

In dem folgenden reproduzierbaren Beispiel hat Fig. 1 mindestens einen Wert in jedem Bereich der Variablen X1 und Plots wie gewünscht. Jede Legendenbeschriftung wird geplottet und entspricht der gewünschten Farbe.

In Beispiel 2 hat die Variable Y1 keinen Wert in jedem der Bereiche, die erstellt werden. Daher zeigt das Diagramm nur die ersten 4 Legendenbeschriftungen und verwendet die ersten 4 Farben.

Gibt es eine Möglichkeit, diese Figur zu zeichnen, die ggplot zwingt, alle acht Legendenbeschriftungen anzuzeigen und die Farben so zu fixieren, dass cat1-Werte immer rot, cat2-Werte immer blau usw. sind.

Ich habe alles versucht, woran ich ohne Erfolg denken kann.

- Reproduzierbares Beispiel -

%Vor%     
learnmorer 17.11.2015, 19:47
quelle

1 Antwort

9

Sie können drop = FALSE in scale_fill_manual verwenden. Das heißt,

%Vor%

Weitere Informationen finden Sie unter ?discrete_scale

    
JasonAizkalns 17.11.2015 19:55
quelle

Tags und Links