Como o problema é comum a muitos ambientes de software estatístico, vamos discuti-lo aqui em Validação cruzada, em vez de migrá-lo para um fórum específico de R (como StackOverflow).
A questão real é que isso Dateé tratado como um fator - uma variável discreta - e, portanto, as linhas não estão sendo conectadas corretamente. (Os pontos também não são plotados perfeitamente com precisão na direção horizontal.)

Para fazer o gráfico à direita, o Datecampo foi convertido de um fator para uma data real, cada semana foi identificada com um cálculo simples (quebrando as semanas entre sábado e domingo) e as linhas foram interrompidas nos finais de semana, fazendo um loop ao longo das 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))
(Uma data equivalente a cada semana, fornecendo a segunda-feira dessa semana, também foi armazenada no oracledataframe porque pode ser útil para plotar dados agregados semanais.)
A intenção original pode ser alcançada simplesmente emulando a última linha para exibir todos os dados. Para adicionar algumas informações sobre o comportamento sazonal, a seguinte plotagem varia de cor por semana ao longo de cada ano civil:
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]))
