Ich möchte das Hexbin des Bioleiters verwenden (was ich tun kann), um ein Diagramm zu erstellen, das den gesamten (PNG-) Anzeigebereich ausfüllt - keine Achsen, keine Beschriftungen, kein Hintergrund, kein Nuthin.
Wäre es nicht einfacher, ein Hexbin-Diagramm zu erstellen und es in einem Bildeditor zuzuschneiden?
Joran
3
versuchentheme_void()
Brian D
Antworten:
182
Gemäß meinem Kommentar in Chases Antwort können Sie viele dieser Dinge entfernen, indem Sie 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())
Es sieht so aus, als ob sich am Rand der resultierenden .png noch ein kleiner Rand befindet, wenn ich dies speichere. Vielleicht weiß jemand anderes, wie man sogar diese Komponente entfernt.
(Historische Anmerkung: Seit ggplot2 Version 0.9.2, optsist veraltet Stattdessen verwenden. theme()Und ersetzen theme_blank()mit element_blank().)
Kommentar im Vorbeigehen: In einigen Fällen theme(axis.ticks=element_blank())funktioniert es nicht so gut wie theme(axis.ticks.x=element_blank())wahrscheinlich ein vorübergehender Fehler irgendwo (ich habe mein eigenes Themenset, dann versuche ich zu überschreiben: nur axis.ticks.xund axis.ticks.ymache den Job.)
PatrickT
106
Betreff: Ändern der Optionen zum Thema usw. (für faule Leute):
Aktuelle Antworten sind entweder unvollständig oder ineffizient. Hier ist (vielleicht) der kürzeste Weg, um das Ergebnis zu erzielen (mit theme_void():
data(diamonds)# Data example
ggplot(data = diamonds, mapping = aes(x = clarity))+ geom_bar(aes(fill = cut))+
theme_void()+ theme(legend.position="none")
Das Ergebnis ist:
Wenn Sie nur die Etiketten entfernen möchten , gehen Sie wie labs(x="", y="")folgt vor:
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"))schlägt vor, dass es nicht 100% nichtig ist
baptiste
Die Labore (x = "", y = "") scheinen nicht die Achsen zu entfernen, sondern nur die Beschriftungen.
Miratrix
@miratrix sorry, mein fehler. Aktualisiert.
Luchonacho
5
@luchonacho Bei Verwendung von labs(x="",y="")lässt Leerzeichen von Achsentiteln, da es tatsächlich Titel gibt, die nur ohne Vorzeichen sind. Um + theme(axis.title = element_blank())
Mir ist klar, dass Sie noch keine Bearbeitungsrechte haben, aber wenn Sie andere ggplot2-Antworten von mir finden, die aktualisiert werden müssen, können Sie eine Änderung vorschlagen. Ich werde eine Benachrichtigung erhalten und kann sie selbst einbinden.
theme_void()
Antworten:
Gemäß meinem Kommentar in Chases Antwort können Sie viele dieser Dinge entfernen, indem Sie
element_blank
:Es sieht so aus, als ob sich am Rand der resultierenden .png noch ein kleiner Rand befindet, wenn ich dies speichere. Vielleicht weiß jemand anderes, wie man sogar diese Komponente entfernt.
(Historische Anmerkung: Seit ggplot2 Version 0.9.2,
opts
ist veraltet Stattdessen verwenden.theme()
Und ersetzentheme_blank()
mitelement_blank()
.)quelle
theme(axis.ticks=element_blank())
funktioniert es nicht so gut wietheme(axis.ticks.x=element_blank())
wahrscheinlich ein vorübergehender Fehler irgendwo (ich habe mein eigenes Themenset, dann versuche ich zu überschreiben: nuraxis.ticks.x
undaxis.ticks.y
mache den Job.)Betreff: Ändern der Optionen zum Thema usw. (für faule Leute):
quelle
Aktuelle Antworten sind entweder unvollständig oder ineffizient. Hier ist (vielleicht) der kürzeste Weg, um das Ergebnis zu erzielen (mit
theme_void()
:Das Ergebnis ist:
Wenn Sie nur die Etiketten entfernen möchten , gehen Sie wie
labs(x="", y="")
folgt vor:quelle
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"))
schlägt vor, dass es nicht 100% nichtig istlabs(x="",y="")
lässt Leerzeichen von Achsentiteln, da es tatsächlich Titel gibt, die nur ohne Vorzeichen sind. Um+ theme(axis.title = element_blank())
labs(x = NULL)
oderxlab(NULL)
sind andere Wege.in
ggplot2 >= 0.9.2
Gebrauchquelle
quelle
Error in UseMethod("grid.draw") : no applicable method for 'grid.draw' applied to an object of class "NULL"
Macht das was du willst?
quelle