6 Stimmen

Wie überwindet man überlappende Punkte ohne Jitter oder Transparenz in ggplot2

Ich beginne mit der Verwendung von ggplot2. Ich habe einige kleine n (etwa 30 oder so) granulare Daten mit viel Überlappung. Weder Jitter noch Alpha (Transparenz) sind geeignet. Stattdessen ein Stripchart mit Stack und Offset tun es am besten, aber ich weiß nicht, wie man es in ggplot2 zu tun. Kennen Sie das?

Um zu sehen, wie das Endergebnis aussehen sollte, klicken Sie hier Grafik .

Hier ist das Skript, das ich vor ein paar Jahren verwendet habe.

stripchart(SystData$DayTo1Syst~SystData$strain,vertical=TRUE,method="stack",pch=19,offset=.3,xlab="Strain",main="Rapidity of Systemic Disease Onset",ylab="Days post inoculation")

0 Stimmen

Ist das nur ein Ruckeln auf der x-Achse?

0 Stimmen

Ja. Der Jitter würde sich nur auf der x-Achse befinden, aber ich möchte eigentlich keinen Jitter. Ich bevorzuge einen geordneten Verlauf von links nach rechts.

0 Stimmen

Ein Sonnenblumenplot könnte hier sehr gut funktionieren, obwohl ich nicht weiß, wie einfach es ist, sie mit ggplot2 zu erstellen.

8voto

Sie können verwenden position_dodge .

df <- data.frame(gp = rep(LETTERS[1:5], each =8), 
                 y = sample(1:4,40,replace=TRUE))
qplot(gp,y,data=df,order=y,position=position_dodge(width=0.5))

Alt-Text http://img100.imageshack.us/img100/8760/dodgel.png

6voto

xiechao Punkte 2211
# your data
df <- data.frame(gp = rep(LETTERS[1:5], each =8), y = sample(1:4,40,replace=TRUE))
# calculate offsets
df <- ddply(df, .(y, gp), transform, offset = (1:length(gp)-1)/20)
qplot(gp, y, data=df) + stat_identity(aes(as.numeric(gp)+offset)) + theme_bw()

4voto

user3645665 Punkte 41

Sie möchten Folgendes verwenden geom_dotplot von ggplot2

die Sie wahrscheinlich verwenden möchten:

ggplot(insert your arguments here) + geom_dotplot(binaxis = "y", stackdir = "center")

Ich hoffe, das hilft. Das Ergebnis wird wirklich sauber aussehen, was ich denke, Sie wollen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X