aby uniknąć przestarzałe opts
i theme_rect
zastosowanie:
myplot + theme(panel.background = element_rect(fill='green', colour='red'))
Aby zdefiniować swój własny temat, na podstawie theme_gray ale niektóre z wprowadzonych zmian i kilkoma dodatkami, w tym kontroli linia siatki kolor/rozmiar (więcej opcji dostępny grać z at 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")
)
}
aby dokonać zwyczaj motyw domyślny kiedy ggplot nazywa się w przyszłości, bez maskowania:
theme_set(theme_jack())
Jeśli chcesz zmienić element aktualnie ustawionego motywu:
theme_update(plot.background = element_rect(fill="pink"), axis.title.x = element_text(colour = "red"))
zapisać bieżącą domyślny motyw jako obiekt:
theme_pink <- theme_get()
Zauważ, że theme_pink
jest lista natomiast theme_jack
była funkcją. Aby zwrócić motyw do tematu theme_jack, należy użyć theme_set(theme_jack())
, natomiast aby powrócić do tematu theme_pink, należy użyć theme_set(theme_pink)
.
Możesz zastąpić theme_gray
przez theme_bw
w definicji theme_jack
, jeśli wolisz. Dla własnych motyw przypominać theme_bw
ale ze wszystkimi liniami siatki (x, y, większy i mniejszy) wyłączone:
theme_nogrid <- function (base_size = 12, base_family = "") {
theme_bw(base_size = base_size, base_family = base_family) %+replace%
theme(
panel.grid = element_blank()
)
}
Wreszcie bardziej radykalny motyw przydatna podczas drukowania choropleths lub inne mapy w ggplot, na podstawie dyskusji here ale zaktualizowany, aby uniknąć wycofania. Celem jest usunięcie szarego tła i wszelkich innych funkcji, które mogą odwrócić uwagę od mapy.
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)
)
}
Istnieje również "theme_bw", co daje białe tło i szare linie siatki. Używam go cały czas, ponieważ w druku wygląda znacznie lepiej niż domyślne szare tło: 'myplot + theme_bw()' – ROLO
@ROLO: Nice! Czy istnieje sposób zastosowania tego do wszystkich działek domyślnie? – krlmlr
Umieść to na początku skryptu dla domyślnych B & W ggplots: 'ggplot <- function (...) { \t ggplot2 :: ggplot (...) + theme_bw() } ' – ROLO