Wenn ich versuche, ein benutzerdefiniertes Thema mithilfe von ggplot2
zu erstellen, wird ein Fehler wie folgt angezeigt:
Ich denke, ich muss hier etwas Grundlegendes vermissen (mein erster Versuch, benutzerdefinierte Designs zu erstellen).
Das Thema wurde basierend auf theme_bw()
erstellt:
Dann probiere es aus:
x & lt; - rnorm (10)
theme_set (theme_new ())
qplot (x)
Erhalte den obigen Fehler!
Allerdings:
theme_set (theme_bw ())
qplot (x)
Funktioniert gut!
Ich vermute, dass theme_update beschrieben in Dieser Stackoverflow-Post ist nicht dasselbe wie das Ändern des Standardthemas mit theme_set ().
Wenn wir uns die neuen Themenrichtlinien in dieser Vignette ( Ссылка ) ansehen, ist mein Verständnis, dass man ENTWEDER braucht um alle Parameter des Themas anzugeben und das complete=TRUE
zu verwenden, um dies zu sagen; ODER verwenden Sie den Operator %+replace%
, um etwas zu einem alten Thema hinzuzufügen, wie theme_bw ().
Erhalten Sie es nicht!
Ein kurzer Blick auf Ссылка verrät
Wenn Sie also den% + Operator% verwenden, um eine neue Design-Funktion zu erstellen, müssen Sie beim Ersetzen von Designelementen am Anfang der Vererbungshierarchie wie Text, Zeile und Rect sehr vorsichtig sein.
...
Beachten Sie, dass die in theme_bw ersetzten Designelemente in theme_grey () hauptsächlich NULL-Eigenschaften haben, da die meisten der Standardeigenschaften in den Elementen rect, line und text definiert sind und an ihre untergeordneten Elemente übergeben werden. Der% + replace% -Operator wird verwendet, um Nicht-NULL-Eigenschaften in den ausgewählten Elementen festzulegen, die in theme () angegeben sind, wobei alle nicht deklarierten Eigenschaften auf NULL gesetzt sind.
Sie sollten also die Spezifikationen auskommentieren, einschließlich line
, text
, rect
, da sie bereits in den übergeordneten Themen definiert wurden: theme_bw
und theme_grey
.
qplot(x) + theme_new()
erzeugt das folgende Bild mit einer Reihe von Warnungen in Bezug auf die Schriftarten.
Wenn es sich auf einer anderen Maschine befand, erzeugte es praktisch alle Plots, die ich ohne Warnungen probiert hatte, also schätze ich, es funktioniert! Zum Beispiel wird der zweite Satz von Plots in Ссылка wiedergegeben als