Para evitar obsoleta opts
e theme_rect
uso:
myplot + theme(panel.background = element_rect(fill='green', colour='red'))
Para definir seu próprio tema personalizado, com base em theme_gray, mas com algumas de suas alterações e alguns extras adicionados, incluindo controle de cor / tamanho da linha de grade (mais opções disponíveis para jogar em 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")
)
}
Para tornar seu tema personalizado o padrão quando o ggplot for chamado no futuro, sem mascarar:
theme_set(theme_jack())
Se você deseja alterar um elemento do tema definido atualmente:
theme_update(plot.background = element_rect(fill="pink"), axis.title.x = element_text(colour = "red"))
Para armazenar o tema padrão atual como um objeto:
theme_pink <- theme_get()
Observe que theme_pink
é uma lista enquanto theme_jack
era uma função. Portanto, para retornar o tema ao uso de theme_jack, theme_set(theme_jack())
ao passo que retornar ao uso de theme_pink theme_set(theme_pink)
.
Você pode substituir theme_gray
por theme_bw
na definição de theme_jack
se preferir. Para que seu tema personalizado se pareça, theme_bw
mas com todas as linhas de grade (x, y, maior e menor) desligadas:
theme_nogrid <- function (base_size = 12, base_family = "") {
theme_bw(base_size = base_size, base_family = base_family) %+replace%
theme(
panel.grid = element_blank()
)
}
Finalmente, um tema mais radical útil ao plotar choropleths ou outros mapas no ggplot, com base na discussão aqui, mas atualizado para evitar a depreciação. O objetivo aqui é remover o fundo cinza e quaisquer outros recursos que possam desviar a atenção do mapa.
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
, dando a você um fundo branco e linhas de grade cinza. Eu o uso o tempo todo, pois na impressão parece muito melhor do que o fundo cinza padrão:myplot + theme_bw()