Để tránh bị phản đối opts
và theme_rect
sử dụng:
myplot + theme(panel.background = element_rect(fill='green', colour='red'))
Để xác định chủ đề tùy chỉnh của riêng bạn, dựa trên theme_gray nhưng với một số thay đổi của bạn và một vài tính năng bổ sung thêm bao gồm kiểm soát của màu Gridline/size (nhiều lựa chọn có sẵn để chơi với 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")
)
}
để làm cho chủ đề tùy chỉnh của bạn mặc định khi ggplot được gọi là trong tương lai, mà không che:
theme_set(theme_jack())
Nếu bạn muốn thay đổi một yếu tố của chủ đề hiện thiết lập:
theme_update(plot.background = element_rect(fill="pink"), axis.title.x = element_text(colour = "red"))
Để lưu trữ các chủ đề mặc định hiện tại như một đối tượng:
theme_pink <- theme_get()
Lưu ý rằng theme_pink
là một danh sách trong khi theme_jack
là một hàm. Vì vậy, để trả lại chủ đề cho theme_jack sử dụng theme_set(theme_jack())
trong khi quay lại sử dụng theme_pink theme_set(theme_pink)
.
Bạn có thể thay thế theme_gray
theo theme_bw
trong định nghĩa theme_jack
nếu bạn muốn. Đối với chủ đề tùy chỉnh của bạn giống theme_bw
nhưng với tất cả các đường lưới (x, y, lớn và nhỏ) tắt:
theme_nogrid <- function (base_size = 12, base_family = "") {
theme_bw(base_size = base_size, base_family = base_family) %+replace%
theme(
panel.grid = element_blank()
)
}
Cuối cùng một chủ đề triệt để hơn hữu ích khi âm mưu choropleths hay các bản đồ khác trong ggplot, dựa trên thảo luận here nhưng được cập nhật để tránh bị phản đối. Mục tiêu ở đây là xóa nền màu xám và bất kỳ tính năng nào khác có thể phân tâm khỏi bản đồ.
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)
)
}
Ngoài ra còn có 'theme_bw', cung cấp cho bạn nền trắng và đường lưới màu xám. Tôi sử dụng nó tất cả các thời gian, như trong in nó trông tốt hơn nhiều so với nền màu xám mặc định: 'myplot + theme_bw()' – ROLO
@ ROLO: Nice! Có cách nào để áp dụng điều này cho tất cả các ô theo mặc định? – krlmlr
Đặt điều này ở đầu tập lệnh của bạn cho các ggplots B & W mặc định: 'ggplot <- function (...) { \t ggplot2 :: ggplot (...) + theme_bw() } ' – ROLO