2010-10-26 9 views
9

Ich verwende geom_density, um Dichten mit sehr dünnen Schwänzen zu zeichnen. Ich möchte den y-Achsenbereich einschränken (so dass der obere Teil der Verteilung außerhalb des Bildschirms liegt und der Schwanz deutlicher sichtbar ist), aber es wirft Daten weg, die außerhalb des Bildschirms liegen, wenn die Dichte berechnet wird und nicht nur nicht angezeigt wird ist außerhalb des Bildschirms.Schränken Sie den y-Achsenbereich auf ggplot + geom_density ein

z.

Dies zeichnet die vollständige Verteilung,

testData = data.frame(counts=c(rep(1,5), 1:10)) 
ggplot(testData, aes(x=testData$counts))+geom_density() 

aber wenn der y Bereich beschränkt ist, sieht es aus, als ob die Verteilung kleine Unterstützung.

ggplot(testData, aes(x=testData$counts))+geom_density()+scale_y_continuous(limits=c(0,0.1)) 

Wie kann ich auf der Y-Achse "hineinzoomen", ohne Daten wegzuwerfen?

Antwort

27

Ich glaube, Sie suchen coord_cartesian():

ggplot(testData, aes(x=testData$counts))+geom_density()+coord_cartesian(ylim=c(0, 0.1)) 
+0

Fantastisch. Ich vermute, ich habe den Zweck sklave_y_continuous falsch interpretiert. Ich nehme an, es muss mehr sein, um die Reichweite des Datensatzes zu verringern. – Pengin

+5

Genau. Die 'xlim()' und 'ylim()' Bequemlichkeitsfunktionen lassen Daten auch außerhalb ihrer Grenzen fallen, so dass es auch hilft, sich vor ihnen zu hüten. Normalerweise verwende ich 'xlim()' und 'ylim()', um das Gitter zu erweitern (z. B. um die Symmetrie zu erzwingen), und 'coord_cartesian()', um hineinzuzoomen. –

Verwandte Themen