Тема ggplot2 без осей или сетки
Я пытаюсь сделать сюжет без информации за пределами данных. Нет осей; нет сетки; без заголовка; просто сюжет.
Но я получаю дополнительные поля и дополнения, которые я не могу удалить.
library(ggplot2)
library(grid)
theme_bare <- theme(
axis.line = element_blank(),
axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.ticks = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
#axis.ticks.length = unit(0, "lines"), # Error
axis.ticks.margin = unit(c(0,0,0,0), "lines"),
legend.position = "none",
panel.background = element_rect(fill = "gray"),
panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.margin = unit(c(0,0,0,0), "lines"),
plot.background = element_rect(fill = "blue"),
plot.margin = unit(c(0,0,0,0), "lines")
)
ggplot() +
geom_area (data=economics, aes(x = date, y = unemploy), linetype=0) +
theme_bare
Создает это изображение: ![plot]()
Я хочу это: ![plot ideal]()
Я не могу понять, как избавиться от синего и сделать темно-серый флеш с краями.
Может ли кто-нибудь предложить какой-нибудь совет?
Ответы
Ответ 1
Вот способ построения только области панели:
p <- ggplot() + geom_area (data=economics, aes(x = date, y = unemploy), linetype=0) +
scale_x_date(expand = c(0,0)) + scale_y_continuous(expand = c(0,0)) +
theme(line = element_blank(),
text = element_blank(),
title = element_blank())
gt <- ggplot_gtable(ggplot_build(p))
ge <- subset(gt$layout, name == "panel")
grid.draw(gt[ge$t:ge$b, ge$l:ge$r])
![enter image description here]()
Ответ 2
Из ggplot2_2.0.0
вы можете использовать theme_void
:
ggplot() +
geom_area(data = economics, aes(x = date, y = unemploy), linetype = 0) +
theme_void()
![введите описание изображения здесь]()
Ответ 3
попробовать
last_plot() + theme(axis.ticks.length = unit(0.001, "mm")) + labs(x=NULL, y=NULL)
вы можете указать ошибку для длины галочка 0.