2014-03-03 12 views
6

Ich möchte die Grenze meiner Plots eine bestimmte Farbe außer schwarz machen. Ich stelle fest, dass, wenn ich das Standard-Theme auf theme_bw() mit:Probleme mit panel.border in ggplot

theme_set(theme_bw()) 

, dass ich die Grenze zur Farbe einstellen kann ich

theme(panel.border = element_rect(color="darkred", size=0.5, linetype="solid"). 

mit möchten, dass ok scheint zu funktionieren. Der Rand jedes Panels, ob nun ein facettierter Plot oder ein einzelner Plot, nimmt die Farbe "dunkelrot" an und der Rest des Plots ist derselbe wie vor dem Wechsel des Panels.

Allerdings, wenn ich einen anderen Standard-Theme verwenden, sagen theme_gray() oder theme_classic(), dann sind die Änderungen Grenze, aber der Inhalt jeder der Facetten ausgelöscht ist (komplett weiß).

Irgendeine Idee, was verursacht diesen Unterschied im Verhalten oder was kann ich tun, um es zu beheben? Ich möchte theme_gray() verwenden und eine dünne farbige Linie um den Rand jeder Facette legen.

Antwort

6

Hilfe-Seite der theme() sagt, dass panel.borded=This should be used with fill=NA, weil es Panels deckt.

Für die theme_bw() gibt es bereits panel.border = element_rect(fill = NA,colour = "grey50"), so dass, wenn Sie Ihre Anweisung nur Farbänderungen und füllen bleibt als NA.

Für theme_grey() und theme_bw() ist es panel.border = element_blank() so, wenn Sie Ihre Anweisung hinzufügen, color= und fill= geändert werden, weil zuvor dieses Element war leer und Standardwert für rect ist fill="white" (zumindest für theme_grey()).

Verwenden

+ theme(panel.border = element_rect(fill=NA,color="darkred", size=0.5, 
            linetype="solid")) 
+0

Danke, Didzis. Wahrscheinlich hätte ich noch ein paar Tage gebraucht, bevor ich auf die Hilfeseite gegangen bin. Das Problem ist jedoch nicht vollständig gelöst. Wenn ich Ihren Vorschlag an das Ende eines ggplot-Befehls anhefte –

+0

... oops ... es funktioniert korrekt. Aber wenn ich es zu meinem Thema hinzufüge, tut es nichts. –

+0

Ich löste dieses zweite Problem. Hat sich als Tippfehler in meinem Thema herausgestellt. Danke für Ihre Hilfe. Sehr geschätzt. –