Ich habe ein Diagramm, in dem die x-Achse ein Faktor ist, dessen Beschriftungen lang sind. Obwohl dies wahrscheinlich keine ideale Visualisierung ist, möchte ich diese Beschriftungen vorerst einfach vertikal drehen. Ich habe diesen Teil mit dem folgenden Code herausgefunden, aber wie Sie sehen können, sind die Beschriftungen nicht vollständig sichtbar.
data(diamonds)
diamonds$cut <- paste("Super Dee-Duper",as.character(diamonds$cut))
q <- qplot(cut,carat,data=diamonds,geom="boxplot")
q + opts(axis.text.x=theme_text(angle=-90))
q + theme(axis.text.x=element_text(angle = -90, hjust = 0))
theme(axis.text.x=element_text(angle = 90, vjust = 0.5))
. Ab ggplot2 0.9.3.1 scheint dies die Lösung zu sein.q + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
IST DIE EINE, DIE AKTUELL ARBEITET.theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))
Ändern Sie die letzte Zeile in, um den Text auf den Häkchen vollständig sichtbar zu machen und in derselben Richtung wie die Beschriftung der y-Achse zu lesen
quelle
Verwenden
coord_flip()
In Kapitel 3.9 von R for Data Science sprechen Wickham und Grolemund genau diese Frage an:
quelle
Ich möchte eine alternative Lösung anbieten , eine robuste Lösung, die der von mir vorgeschlagenen ähnelt, war in der neuesten Version von ggtern erforderlich , da die Funktion zum Drehen der Zeichenfläche eingeführt wurde.
Grundsätzlich müssen Sie die relativen Positionen mithilfe der Trigonometrie bestimmen, indem Sie eine Funktion erstellen, die ein
element_text
Objekt mit einem bestimmten Winkel (dh Grad) und einer Positionierungsinformation (dh einer von x, y, oben oder rechts) zurückgibt .Ehrlich gesagt denke ich, dass eine 'Auto'-Option
ggplot2
für die Argumentehjust
und verfügbar gemacht werden sollte.vjust
Wenn Sie den Winkel angeben, können Sie trotzdem demonstrieren, wie das oben Genannte funktioniert.Welches erzeugt das folgende:
quelle
rads = (-angle - positions[[ position ]])*pi/180
ergab jedoch bessere Platzierungen. Beachten Sie das zusätzliche Minuszeichen vor dem Winkel.Das ggpubr- Paket bietet eine Verknüpfung, die standardmäßig das Richtige tut (Text rechts ausrichten, Textfeld in der Mitte ausrichten, um sie anzukreuzen):
Erstellt am 06.11.2018 durch das reprex-Paket (v0.2.1)
Gefunden mit einer GitHub-Suche nach den relevanten Argumentnamen: https://github.com/search?l=R&q=element_text+angle+90+vjust+org%3Acran&type=Code
quelle
Alternativ
ggplot 3.3.0
bietetguide_axis(n.dodge = 2)
(alsguide
Argumentscale_..
oder alsx
Argumentguides
) das über Plotten Problem zu überwinden , indem die Etiketten vertikal ausweichen. In diesem Fall funktioniert es ganz gut:quelle
Um lesbare x-Tick-Beschriftungen ohne zusätzliche Abhängigkeiten zu erhalten, möchten Sie Folgendes verwenden:
Dadurch werden die Häkchen um 90 ° gegen den Uhrzeigersinn gedreht und an ihrem Ende (
hjust = 1
) und ihren Mitten horizontal mit dem entsprechenden Häkchen (vjust = 0.5
) ausgerichtet.Vollständiges Beispiel:
Beachten Sie, dass die vertikalen / horizontalen Ausrichtungsparameter
vjust
/hjust
vonelement_text
relativ zum Text sind. Ist dahervjust
für die horizontale Ausrichtung verantwortlich.Ohne
vjust = 0.5
würde es so aussehen:Ohne
hjust = 1
würde es so aussehen:Wenn Sie aus irgendeinem (verdrahteten) Grund die Häkchen um 90 ° im Uhrzeigersinn drehen möchten (so dass sie von links abgelesen werden können), müssen Sie Folgendes verwenden :
q + theme(axis.text.x = element_text(angle = -90, vjust = 0.5, hjust = -1))
.All dies wurde bereits in den Kommentaren dieser Antwort besprochen , aber ich komme so oft auf diese Frage zurück, dass ich eine Antwort möchte, von der ich einfach kopieren kann, ohne die Kommentare zu lesen.
quelle
Eine Alternative dazu
coord_flip()
ist die Verwendung desggstance
Pakets. Der Vorteil ist, dass es einfacher ist, die Diagramme mit anderen Diagrammtypen zu kombinieren, und Sie können, was vielleicht noch wichtiger ist, feste Skalierungsverhältnisse für Ihr Koordinatensystem festlegen .Erstellt am 2020-03-11 durch das reprex-Paket (v0.3.0)
quelle