Seite 1 von 1

Verschieben von autocorrelation plots

Verfasst: Mi Jun 06, 2018 4:31 pm
von wintwin111
Hallo zusammen,

ich habe ein Problem mit einem Plot den ich in R erstellen will.

Hier ist ein Beispiel

2 vektoren generieren

Code: Alles auswählen

a<-rnorm(100,0,1)
b<-rnorm(100,0,1)
die autocorrelation arrays extrahieren

Code: Alles auswählen

a1<-acf(a)$acf
b1<-acf(b)$acf
arrays umwandeln in Vektoren

Code: Alles auswählen

a1<-as.numeric(a1)
b1<-as.numeric(b1)
jetzt will ich beide acf's plotten so in der Art

Code: Alles auswählen

plot(a1,type="h")
lines(b1,type="h",col="red")
Nun ist das aber etwas unübersichtlich und ich würde gerne den roten plot minimal nach rechts verschieben so dass beide plots "nebeneinander" in einem sind. Kann mir da jemand behilflich sein?

Grüße

Re: Verschieben von autocorrelation plots

Verfasst: Mi Jun 06, 2018 4:51 pm
von wintwin111
Was ich vorhabe ist so etwas ähnliches wie der geom_bar Befehl in ggplot2 aber ohne dieses Package zu benutzen.

Re: Verschieben von autocorrelation plots

Verfasst: Mi Jun 06, 2018 5:13 pm
von EDi
Wieso kein ggplot2?

Ohne musst du dich selbst um die Position auf der x-achse kümmern...

Re: Verschieben von autocorrelation plots

Verfasst: Mi Jun 06, 2018 5:34 pm
von wintwin111
Von mir aus auch mit ggplot2 aber mit diesem package habe ich noch nie gearbeitet und der
code sieht doch extrem anderst aus als das normale plotten.
Wenn ich mir

Code: Alles auswählen

xy.coords(a)$x
anschaue dann sind ja die werte 1,2,... Kann ich diese Werte nicht einfach in 1.1,1.2,... ändern oder geht das so einfach nicht?
Weil wenn ich diesen Code verwende
c<-c(1.1,2.1,3.1,4.1,5.1,6.1,6.1,7.1,8.1,9.1,10.1)

Code: Alles auswählen

xy.coords(a)$x<-c
dann kommt der Fehler

Code: Alles auswählen

Fehler in xy.coords(a)$x <- c : konnte Funktion "xy.coords<-" nicht finden

Re: Verschieben von autocorrelation plots

Verfasst: Mi Jun 06, 2018 10:06 pm
von bigben
Ggplot2 sieht nicht nur anders aus, ggplot2 ist anders. Ganz anders. Vorschlag ohne ggplot2, minimale Ergänzung zum bisherigen:

Code: Alles auswählen

plot(1:length(a1)-.1, a1,type="h")
lines(1:length(b1)+.1, b1,type="h",col="red")
abline(h=0, col="grey")
Um die y-Achse, genauer die ylim, musst Du Dich aber wohl wirklich noch kümmern.

LG,
Bernhard

Re: Verschieben von autocorrelation plots

Verfasst: Do Jun 07, 2018 7:40 am
von wintwin111
Hallo Bernhard, genau das habe ich gesucht. Vielen Dank! Aber wieso soll ich mich noch um die y-Achse kümmern?

Re: Verschieben von autocorrelation plots

Verfasst: Do Jun 07, 2018 8:04 pm
von bigben
Deren Grenzen hängen nur von a1, nicht von b1 ab. Wenn b1 viel höhere oder viel niedrigere Werte als a1 enthält, dann ist die Achse zu kurz. Deshalb brauchst Du im plot-Kommando ein ylim- Argument.

LG,
Bernhard

Re: Verschieben von autocorrelation plots

Verfasst: Sa Jun 09, 2018 5:07 pm
von wintwin111
Ach so, ja das ist aber kein Problem mehr