Um Veraltetheit zu vermeiden opts
und zu theme_rect
verwenden:
myplot + theme(panel.background = element_rect(fill='green', colour='red'))
So definieren Sie Ihr eigenes benutzerdefiniertes Thema, basierend auf theme_gray, aber mit einigen Ihrer Änderungen und einigen zusätzlichen Extras, einschließlich der Steuerung der Farbe / Größe der Gitterlinie (weitere Optionen zum Spielen unter ggplot2.org ):
theme_jack <- function (base_size = 12, base_family = "") {
theme_gray(base_size = base_size, base_family = base_family) %+replace%
theme(
axis.text = element_text(colour = "white"),
axis.title.x = element_text(colour = "pink", size=rel(3)),
axis.title.y = element_text(colour = "blue", angle=45),
panel.background = element_rect(fill="green"),
panel.grid.minor.y = element_line(size=3),
panel.grid.major = element_line(colour = "orange"),
plot.background = element_rect(fill="red")
)
}
So legen Sie Ihr benutzerdefiniertes Design als Standard fest, wenn ggplot in Zukunft ohne Maskierung aufgerufen wird:
theme_set(theme_jack())
Wenn Sie ein Element des aktuell festgelegten Themas ändern möchten:
theme_update(plot.background = element_rect(fill="pink"), axis.title.x = element_text(colour = "red"))
So speichern Sie das aktuelle Standarddesign als Objekt:
theme_pink <- theme_get()
Beachten Sie, dass dies theme_pink
eine Liste ist, während theme_jack
eine Funktion war. Um das Thema wieder auf theme_jack zu verwenden theme_set(theme_jack())
, kehren Sie zu theme_pink zurück theme_set(theme_pink)
.
Sie können theme_gray
durch theme_bw
in der Definition von ersetzen, theme_jack
wenn Sie es vorziehen. Damit Ihr benutzerdefiniertes Thema ähnelt, theme_bw
aber alle Gitterlinien (x, y, Dur und Moll) deaktiviert sind:
theme_nogrid <- function (base_size = 12, base_family = "") {
theme_bw(base_size = base_size, base_family = base_family) %+replace%
theme(
panel.grid = element_blank()
)
}
Schließlich ein radikaleres Thema, das beim Zeichnen von Choroplethen oder anderen Karten in ggplot nützlich ist. Es basiert auf der Diskussion hier, wurde jedoch aktualisiert, um eine Ablehnung zu vermeiden. Ziel ist es, den grauen Hintergrund und alle anderen Funktionen zu entfernen, die von der Karte ablenken könnten.
theme_map <- function (base_size = 12, base_family = "") {
theme_gray(base_size = base_size, base_family = base_family) %+replace%
theme(
axis.line=element_blank(),
axis.text.x=element_blank(),
axis.text.y=element_blank(),
axis.ticks=element_blank(),
axis.ticks.length=unit(0.3, "lines"),
axis.ticks.margin=unit(0.5, "lines"),
axis.title.x=element_blank(),
axis.title.y=element_blank(),
legend.background=element_rect(fill="white", colour=NA),
legend.key=element_rect(colour="white"),
legend.key.size=unit(1.2, "lines"),
legend.position="right",
legend.text=element_text(size=rel(0.8)),
legend.title=element_text(size=rel(0.8), face="bold", hjust=0),
panel.background=element_blank(),
panel.border=element_blank(),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
panel.margin=unit(0, "lines"),
plot.background=element_blank(),
plot.margin=unit(c(1, 1, 0.5, 0.5), "lines"),
plot.title=element_text(size=rel(1.2)),
strip.background=element_rect(fill="grey90", colour="grey50"),
strip.text.x=element_text(size=rel(0.8)),
strip.text.y=element_text(size=rel(0.8), angle=-90)
)
}
theme_bw
, die Ihnen einen weißen Hintergrund und graue Gitterlinien gibt. Ich benutze es die ganze Zeit, da es im Druck viel besser aussieht als der standardmäßige graue Hintergrund:myplot + theme_bw()