Per evitare deprecato opts
e theme_rect
utilizzare:
myplot + theme(panel.background = element_rect(fill='green', colour='red'))
Per definire il tuo tema personalizzato, basato su theme_gray ma con alcune delle tue modifiche e alcuni extra aggiunti incluso il controllo del colore / dimensione della griglia (più opzioni disponibili con cui giocare su 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")
)
}
Per rendere il tuo tema personalizzato predefinito quando ggplot verrà chiamato in futuro, senza mascherare:
theme_set(theme_jack())
Se desideri modificare un elemento del tema attualmente impostato:
theme_update(plot.background = element_rect(fill="pink"), axis.title.x = element_text(colour = "red"))
Per memorizzare il tema predefinito corrente come oggetto:
theme_pink <- theme_get()
Nota che theme_pink
è una lista mentre theme_jack
era una funzione. Quindi, per restituire il tema a theme_jack usa theme_set(theme_jack())
mentre per tornare a theme_pink usa theme_set(theme_pink)
.
Puoi sostituire theme_gray
con theme_bw
nella definizione di theme_jack
se preferisci. Affinché il tuo tema personalizzato assomigli theme_bw
ma con tutte le linee della griglia (x, y, maggiore e minore) disattivate:
theme_nogrid <- function (base_size = 12, base_family = "") {
theme_bw(base_size = base_size, base_family = base_family) %+replace%
theme(
panel.grid = element_blank()
)
}
Infine un tema più radicale utile quando si tracciano coropleti o altre mappe in ggplot, basato sulla discussione qui ma aggiornato per evitare deprecazioni. L'obiettivo qui è rimuovere lo sfondo grigio e qualsiasi altra caratteristica che potrebbe distrarre dalla mappa.
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
, che ti dà uno sfondo bianco e una griglia grigia. Lo uso sempre, poiché in stampa sembra molto meglio dello sfondo grigio predefinito:myplot + theme_bw()