GOOGLE ADS

Dienstag, 3. Mai 2022

Wie kann man die Überlappung der Y-Achsen-Beschriftung auf ggplot in R beheben?

Meine y-Achse für Altersgruppen überschneidet sich ständig. Bitte helfen Sie! Das ist mein Code:

ggplot(data = BRFSS2015_outlier1, aes(x = INCOME2, y= Age, color = SEX))+
geom_col(width=0.03)+
facet_grid(.~SEX)+
labs(x = "Age")+
theme(axis.text.x = element_text(angle = 30))

Die Ausgabe sieht so aus:
Geben Sie hier die Bildbeschreibung ein


Lösung des Problems

Es ist hilfreich, ein Datenbeispiel mit dput(BRFSS2015_outlier1) oder, wenn das zu lang ist, mit dput(head(BRFSS2015_outlier1)) anzuzeigen.

Ich vermute, dass das Alter als Faktor gespeichert ist und Sie nicht zusammengefasst haben, sodass jede Spalte viele Beobachtungen stapelt, was zu hohen Spalten führt, die mit der begrenzten Anzahl von Altersfaktoren, die auf der y-Achse angezeigt werden, weit außerhalb des Maßstabs liegen. Sie könnten zum Beispiel ein Alter „30" haben, was der erste Faktor sein könnte, der bei „1" auf der y-Achse erscheint, und Alter „40" als zweiten Faktor, der bei „2" auf der y-Achse erscheint, aber diese sind im Grunde 0 im Vergleich zu Ihrem Stack, der Hunderte oder Tausende von Beobachtungen hoch ist.

Hier ist ein reproduzierbares Beispiel mit Daten, die wir alle bereits haben. Beachten Sie, dass die Beschriftungen der Y-Achse wie in Ihrem Beispiel unten alle überlappt sind.

ggplot(data = diamonds, aes(x = cut, y= as.factor(cut), color = clarity))+
geom_col(width=0.03)+
facet_grid(.~color)+
theme(axis.text.x = element_text(angle = 30))

Geben Sie hier die Bildbeschreibung ein

Mir ist unklar, was Sie mit Age auf der y-Achse zeigen möchten. Soll jeder Balken "so hoch" wie das Alter sein? Oder möchten Sie zeigen, wie viele Beobachtungen es für jedes Alter gibt?

Ich vermute, Sie wollten zeigen, wie sich die Einkommensverteilung mit dem Alter ändert. In diesem Fall ist es möglicherweise angemessener, Alter als vertikale Facettenvariable zu verwenden, wie hier (ersetzen Sie "Schnitt" hier durch Alter in Ihrem Beispiel). Beachten Sie auch die Verwendung von geom_bar(das standardmäßig die Anzahl der Beobachtungen zählt und anzeigt) anstelle von geom_col(das standardmäßig den Rohwert anzeigt).

ggplot(data = diamonds, aes(x = cut, fill = cut))+
geom_bar()+
facet_grid(color~clarity)+
theme(axis.text.x = element_text(angle = 30))

Geben Sie hier die Bildbeschreibung ein

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...