Debido a que el problema es común en muchos entornos de software estadístico, analicémoslo aquí en Cross Validated en lugar de migrarlo a un foro específico de R (como StackOverflow).
El problema real es que Date
se trata como un factor, una variable discreta, por lo que las líneas no se conectan correctamente. (Tampoco los puntos se trazan con precisión perfecta en la dirección horizontal).

Para hacer el diagrama a la derecha, el Date
campo se convirtió de un factor a una fecha real, cada semana se identificó con un cálculo simple (rompiendo las semanas entre el sábado y el domingo) y las líneas se interrumpieron durante los fines de semana al recorrer las semanas:
oracle$date <- as.Date(oracle$Date)
oracle$week.num <- (as.integer(oracle$date) + 3) %/% 7
oracle$week <- as.Date(oracle$week.num * 7 - 3, as.Date("1970-01-01", "%Y-%m-%d"))
par(mfrow=c(1,2))
plot(as.factor(unclass(oracle$Date[1:120])), oracle$Open[1:120], type="l",
main="Original Plot: Inset", xlab="Factor code")
plot(oracle$date[1:120], oracle$Open[1:120], type="n", ylab="Price",
main="Oracle Opening Prices")
tmp <- by(oracle[1:120,], oracle$week[1:120], function(x) lines(x$date, x$Open, lwd=2))
(Una fecha equivalente de cada semana, que da el lunes de esa semana, también se almacenó en el oracle
marco de datos porque puede ser útil para trazar datos agregados semanales).
La intención original se puede lograr simplemente emulando la última línea para mostrar todos los datos. Para agregar información sobre el comportamiento estacional, la siguiente gráfica varía el color por semana durante cada año calendario:
par(mfrow=c(1,1))
colors <- terrain.colors(52)
plot(oracle$date, oracle$Open, type="n", main="Oracle Opening Prices")
tmp <- by(oracle, oracle$week,
function(x) lines(x$date, x$Open, col=colors[x$week.num %% 52 + 1]))

R
una forma de agregar líneas suaves esloess
. Estoy saliendo, pero intente loess en R y, si tiene problemas, edite su publicación y ciertamente alguien podrá ayudarlo. También hay otros métodos de suavizado, pero creo que loess es un buen valor predeterminado.