2017-03-24 5 views
0

Ich verwende ggplot, um einen Boxplot zu erstellen. Der Code ist der folgende:Begrenzung des Bereichs der y-Achse in einem Boxplot in ggplot, ohne die Daten zu beeinflussen, auf denen der Boxplot basiert

ggplot(my_data, aes(x = as.factor(viotiko), y = pd_1year, fill = as.factor(viotiko))) + geom_boxplot() + 
    labs(title="Does the PD differ significantly by 'Viotiko' group?",x="Viotiko Group", y = "PD (pd_1year)") 

Das gibt das folgende Diagramm:

Boxplot without limits in the y-axis

nächste I in einem Bereich des y-Wertes konzentrieren wollte - [0, 0.05] - und ich führe den Code erneut mit den geänderten Parametern aus. Ich wollte Daten nicht ausschließen und den Mittelwert und die Verteilung ändern, sondern mich einfach auf einen bestimmten Bereich von y-Werten konzentrieren. Der Code war wieder dieses:

ggplot(my_data, aes(x = as.factor(viotiko), y = pd_1year, fill = as.factor(viotiko))) + geom_boxplot() + 
    labs(title="Does the PD differ significantly by 'Viotiko' group?",x="Viotiko Group", y = "PD (pd_1year)") + 
    scale_y_continuous(breaks =seq(0, .05, .01), limit = c(0, 0.05)) 

dies eine Warnung zurückgegeben „Entfernt 173.664 Zeilen mit nicht-endliche Werte (stat_boxplot).“ und ausgegeben, um die folgende Grafik:

Boxplot after setting a limit to the y axis

Offenbar ggplot irgendwie ändert die Eingangsdaten auf dem der boxplot basiert. Ich beabsichtige jedoch, mich einfach auf das Segment des Boxplots zu konzentrieren, um die Unterschiede zwischen den Gruppen näher untersuchen zu können. Wie kann ich dies mit ggplot tun?

Ihr Rat wird geschätzt.

Antwort

0

Verwenden Sie anstelle Ihres scale_y_continuous() Codes coord_cartesian() wie folgt.

Diese

scale_y_continuous(breaks =seq(0, .05, .01), limit = c(0, 0.05)) 

ersetzen mit diesem

coord_cartesian(ylim = c(0,0.05)) 

auch bemerkt, dass Sie Mittel zu präsentieren versuchen. Beachten Sie, dass Boxplot den Median nicht als Mittelwert anzeigt. Vielleicht etwas, das Sie für Ihre Datenpräsentation im Kopf behalten sollten. Auch BoxPlots werden normalerweise gegenüber anderen Optionen bevorzugt, da sie Datenverteilung (z. B. Ausreißer) und andere wichtige Statistiken zum Vergleich anzeigen. Zuschneiden, nur um Median zu zeigen, ist daher vielleicht keine gute Idee, sondern Sie könnten nur Median mit geom_point() zeigen.

+0

Danke. Gibt es eine Möglichkeit, im Boxplot zu zeigen? – ak7

+0

@ ak7 Sie können mit Boxplot nicht genau meinen. Aber Sie können den Mittelwert immer als Punkt über dem Boxplot anzeigen, Mittelwert, Median und IQRs. Um dies zu tun, platziere '+ geom_point()' mit deinem Mittelwert als 'y' Ästhetik darin. –

Verwandte Themen