Chcę użyć hexbin bioprzewodnika (co mogę zrobić), aby wygenerować wykres, który wypełni cały (png) region wyświetlania - bez osi, bez etykiet, bez tła, bez niczego.
Czy nie byłoby łatwiej utworzyć wykres hexbinowy i przyciąć go w edytorze obrazów?
joran
3
spróbujtheme_void()
Brian D
Odpowiedzi:
182
Zgodnie z moim komentarzem w odpowiedzi Chase'a, możesz usunąć wiele z tych rzeczy za pomocą 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())
Wygląda na to, że po zapisaniu tego pliku nadal jest mały margines wokół krawędzi wynikowego pliku .png. Być może ktoś inny wie, jak usunąć nawet ten element.
(Uwaga historyczna: Ponieważ ggplot2 wersji 0.9.2, optszostała zaniechana Zamiast używać. theme()I zastąpić theme_blank()z element_blank()).
Komentarz na marginesie: W niektórych przypadkach theme(axis.ticks=element_blank())nie działa tak dobrze, jak theme(axis.ticks.x=element_blank()), prawdopodobnie gdzieś tymczasowy błąd (mam ustawiony własny motyw, potem próbuję go zastąpić: tylko axis.ticks.xi axis.ticks.ywykonuję zadanie).
PatrickT
106
Re: zmiana opcji na motyw itp (dla leniwych ludzi):
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"))sugeruje, że nie jest to w 100% nieważne
baptiste
Laboratorium (x = "", y = "") nie wydaje się usuwać osi, tylko etykiety.
miratrix
@miratrix przepraszam, mój błąd. Zaktualizowano.
luchonacho
5
@luchonacho Użycie labs(x="",y="")pozostawia miejsce na tytuły osi, ponieważ w rzeczywistości są tytuły, są one po prostu bez znaków. Aby usunąć tytuły osi i miejsce na nie, lepiej użyć+ theme(axis.title = element_blank())
Zdaję sobie sprawę, że nie masz jeszcze uprawnień do edycji, ale jeśli zauważysz inne moje odpowiedzi ggplot2, które wymagają aktualizacji re: opts (), możesz zasugerować zmianę. Otrzymam powiadomienie i będę mógł samodzielnie je włączyć.
theme_void()
Odpowiedzi:
Zgodnie z moim komentarzem w odpowiedzi Chase'a, możesz usunąć wiele z tych rzeczy za pomocą
element_blank
:Wygląda na to, że po zapisaniu tego pliku nadal jest mały margines wokół krawędzi wynikowego pliku .png. Być może ktoś inny wie, jak usunąć nawet ten element.
(Uwaga historyczna: Ponieważ ggplot2 wersji 0.9.2,
opts
została zaniechana Zamiast używać.theme()
I zastąpićtheme_blank()
zelement_blank()
).źródło
theme(axis.ticks=element_blank())
nie działa tak dobrze, jaktheme(axis.ticks.x=element_blank())
, prawdopodobnie gdzieś tymczasowy błąd (mam ustawiony własny motyw, potem próbuję go zastąpić: tylkoaxis.ticks.x
iaxis.ticks.y
wykonuję zadanie).Re: zmiana opcji na motyw itp (dla leniwych ludzi):
źródło
Aktualne odpowiedzi są niepełne lub nieskuteczne. Oto (być może) najkrótsza droga do osiągnięcia wyniku (przy użyciu
theme_void()
:Wynik jest taki:
Jeśli chcesz po prostu wyeliminować etykiety ,
labs(x="", y="")
załatwia sprawę:źródło
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"))
sugeruje, że nie jest to w 100% nieważnelabs(x="",y="")
pozostawia miejsce na tytuły osi, ponieważ w rzeczywistości są tytuły, są one po prostu bez znaków. Aby usunąć tytuły osi i miejsce na nie, lepiej użyć+ theme(axis.title = element_blank())
labs(x = NULL)
czyxlab(NULL)
są innymi sposobami.w
ggplot2 >= 0.9.2
użyciuźródło
źródło
Error in UseMethod("grid.draw") : no applicable method for 'grid.draw' applied to an object of class "NULL"
Czy to robi, co chcesz?
źródło