2016-08-18 1 views
-3

Ich versuche derzeit, auf beiden Seiten der X-Achse eines Barplot zu plotten, so kann ich einfach die zwei verschiedenen Vektoren an verschiedenen Y-PunktenZeichnen auf beiden Seiten der X-Achse auf einem Barplot in R

vergleichen

Ich habe das meiste davon herausgefunden, ich kann den zweiten Vektor irgendwie nicht hinzufügen. Ich denke, der einfachste Weg, um klarer zu machen, was ich will, ist, dir das Bild unten zu zeigen.

Was ich will ist, dass cleanvector2 geplottet von der X-Achse nach unten, also beginnend bei 0 und nach unten erweitert geplottet wird. Vorzugsweise auch mit positiven Werten auf der Y-Achse.

image1

und Code verwenden, wie zur Zeit:

naam=" " 
    filenaam=paste(t, ".png", sep="") 
    bitmap(filenaam, type="png16m", res=300) 
    cleanvector1=c(1.29 1.93 1.71 1.35 1.54 0.73 1.41 1.52 1.43 1.09 0.96 0.87 2.29 1.50 0.67) 
    cleanvector2=c(1.29 1.93 1.71 1.35 1.54 0.73 1.41 1.52 1.43 1.09 0.96 0.87 2.29 1.50 0.67) 
    cleanvector2=cleanvector2*-1 
    barplot(rollapply(cleanvector1, 2,mean, by=1, fill=NA), main=naam, ylim=c(max(cleanvector1)*-1,max(cleanvector1)), xlab="200 basepair bins") 
# barplot(rollapply(cleanvector2, 2,mean, by=1, fill=NA)) 
    abline(h=1, col="darkred") 
    abline(h=-1, col="darkred") 
    axis(side=1) 
    dev.off() 
+1

Sie sollten Ihre Daten in einem [reproduzierbaren Format] teilen (http://stackoverflow.com/questions/5963269/how-to- make-a-great-r-reproduzierbares Beispiel). Machen Sie Ihren Code auch, um das Problem so minimal wie möglich zu reproduzieren (die 'for' -Schleife und das' Bitmap'-Zeug scheinen für die Frage nicht wesentlich zu sein. Außerdem können Sie vielleicht besser beschreiben, wie genau die gewünschte Ausgabe aussehen würde? – MrFlick

+0

Will, gib mir eine Minute – Xizam

+0

Du hast genau die gleiche Frage vor einer Stunde gestellt und es war nicht klar dann – csgillespie

Antwort

0

hier ein minimales Arbeitsbeispiel ist. Zwei Dinge zu beachten: cleanvector* in Ihrem Code fehlt Kommas, die es für die Menschen schwierig macht, die Ergebnisse zu reproduzieren; Sie sollten die Ausgabe kopieren und einfügen z. dput(cleanvector1). Zweitens, da rollapply kommt (ich nehme an) aus dem zoo Paket, sollte das Beispiel das Paket geladen haben, oder zoo::rollapply verwenden.

Um den zweiten Vektor zum BarPlot hinzuzufügen, verwenden barplot(..., add = TRUE):

cleanvector1 <- c(1.29, 1.93, 1.71, 1.35, 1.54, 0.73, 1.41, 1.52, 1.43, 1.09, 
0.96, 0.87, 2.29, 1.5, 0.67) 
cleanvector2 <- cleanvector1 * -1 
barplot(zoo::rollapply(cleanvector1, 2, mean, fill = NA), 
     ylim=c(max(cleanvector1) * -1, max(cleanvector1)), 
     xlab="200 basepair bins") 
barplot(zoo::rollapply(cleanvector2, 2, mean, fill = NA), 
     add = TRUE) 
abline(h = 1, col = "darkred") 
abline(h = -1, col = "darkred") 
Verwandte Themen