Я хочу использовать hexbin биокондуктора (что я могу сделать) для создания графика, который заполняет всю область отображения (png) - без осей, без меток, без фона, без нутина.
Попутный комментарий: в некоторых случаях theme(axis.ticks=element_blank())не работает так же хорошо, как theme(axis.ticks.x=element_blank()), возможно, временная ошибка где-то (у меня есть собственный набор тем, затем я пытаюсь переопределить: only axis.ticks.xи axis.ticks.yвыполнить свою работу.)
PatrickT
109
Re: изменение настроек на тему и т. Д. (Для ленивых):
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% недействительность
baptiste
Лаборатории (x = "", y = ""), похоже, не удаляют оси, а только метки.
miratrix
@miratrix извини, моя ошибка. Обновлено.
luchonacho
6
@luchonacho Использование labs(x="",y="")оставляет пространство для заголовков осей, потому что на самом деле заголовки есть, они просто без знаков. Чтобы удалить названия осей и пространство для них, лучше использовать+ theme(axis.title = element_blank())
Я понимаю, что у вас еще нет прав на редактирование, но если вы заметили другие мои ответы ggplot2, которые нужно обновить, re: opts (), не стесняйтесь предлагать редактирование. Я получу уведомление и сам смогу его добавить.
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())
, возможно, временная ошибка где-то (у меня есть собственный набор тем, затем я пытаюсь переопределить: onlyaxis.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")
источник