Я хочу использовать hexbin биокондуктора (что я могу сделать) для создания графика, который заполняет всю область отображения (png) - без осей, без меток, без фона, без нутина.
theme_void()
Я хочу использовать hexbin биокондуктора (что я могу сделать) для создания графика, который заполняет всю область отображения (png) - без осей, без меток, без фона, без нутина.
theme_void()
Ответы:
Согласно моему комментарию в ответе Чейза, вы можете удалить многое из этого, используя element_blank
:
dat <- data.frame(x=runif(10),y=runif(10))
p <- ggplot(dat, aes(x=x, y=y)) +
geom_point() +
scale_x_continuous(expand=c(0,0)) +
scale_y_continuous(expand=c(0,0))
p + 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(),legend.position="none",
panel.background=element_blank(),panel.border=element_blank(),panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),plot.background=element_blank())
Похоже, что когда я сохраняю, по краю полученного .png все еще есть небольшой запас. Возможно, кто-то еще знает, как удалить даже этот компонент.
(Историческая справка: начиная с версии 0.9.2 ggplot2 opts
устарела. Вместо этого используйте theme()
и замените theme_blank()
на element_blank()
.)
theme(axis.ticks=element_blank())
не работает так же хорошо, как theme(axis.ticks.x=element_blank())
, возможно, временная ошибка где-то (у меня есть собственный набор тем, затем я пытаюсь переопределить: only axis.ticks.x
и axis.ticks.y
выполнить свою работу.)
Re: изменение настроек на тему и т. Д. (Для ленивых):
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(),
legend.position="none",
panel.background=element_blank(),
panel.border=element_blank(),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
plot.background=element_blank())
Текущие ответы либо неполны, либо неэффективны. Вот (возможно) кратчайший способ добиться результата (используя theme_void()
:
data(diamonds) # Data example
ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) +
theme_void() + theme(legend.position="none")
Результат:
Если вы заинтересованы в простом удалении ярлыков , labs(x="", y="")
это поможет:
ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) +
labs(x="", y="")
ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) + theme_void() + theme(legend.position="none", panel.background = element_rect(fill="grey80"), plot.background = element_rect(fill="red"))
предполагает, что это не 100% недействительность
labs(x="",y="")
оставляет пространство для заголовков осей, потому что на самом деле заголовки есть, они просто без знаков. Чтобы удалить названия осей и пространство для них, лучше использовать+ theme(axis.title = element_blank())
labs(x = NULL)
или xlab(NULL)
другие способы.
'opts' is deprecated.
в ggplot2 >= 0.9.2
использовании
p + theme(legend.position = "none")
xy <- data.frame(x=1:10, y=10:1)
plot <- ggplot(data = xy)+geom_point(aes(x = x, y = y))
plot
panel = grid.get("panel-3-3")
grid.newpage()
pushViewport(viewport(w=1, h=1, name="layout"))
pushViewport(viewport(w=1, h=1, name="panel-3-3"))
upViewport(1)
upViewport(1)
grid.draw(panel)
Error in UseMethod("grid.draw") : no applicable method for 'grid.draw' applied to an object of class "NULL"
Поздно на вечеринку, но может быть интересно ...
Я считаю, что комбинация labs
и guides
спецификация полезны во многих случаях:
Вам нужны только сетка и фон:
ggplot(diamonds, mapping = aes(x = clarity)) +
geom_bar(aes(fill = cut)) +
labs(x = NULL, y = NULL) +
guides(x = "none", y = "none")
Вы хотите подавить метку галочки только на одной или обеих осях:
ggplot(diamonds, mapping = aes(x = clarity)) +
geom_bar(aes(fill = cut)) +
guides(x = "none", y = "none")
Я не нашел здесь этого решения. Он удаляет все это с помощью пакета cowplot:
library(cowplot)
p + theme_nothing() +
theme(legend.position="none") +
scale_x_continuous(expand=c(0,0)) +
scale_y_continuous(expand=c(0,0)) +
labs(x = NULL, y = NULL)
Просто заметил, что то же самое можно сделать с помощью theme.void () следующим образом:
p + theme_void() +
theme(legend.position="none") +
scale_x_continuous(expand=c(0,0)) +
scale_y_continuous(expand=c(0,0)) +
labs(x = NULL, y = NULL)
Это делает то, что вы хотите?
p <- ggplot(myData, aes(foo, bar)) + geom_whateverGeomYouWant(more = options) +
p + scale_x_continuous(expand=c(0,0)) +
scale_y_continuous(expand=c(0,0)) +
opts(legend.position = "none")