La fonction scatterplot()
fait un certain nombre d'opérations, qui inclut des changements de par()
. A moins de lire le code source et de s'arracher les cheveux à essayer de comprendre ce qui se passe vraiment, ça me semble très compliqué de combiner le résultat de deux appels à scatterplot()
après coup.
Le plus simple, c'est si tu peux faire un seul appel à scatterplot()
avec les données combinées, et une variable de groupe:
library(car)
#> Loading required package: carData
# on augmente la marge de droite pour que le titre rentre
mar <- par("mar")
mar[4] <- 4
par(mar = mar)
# example de données aléatoires
sub4_before <- data.frame(IMP_HY_GASFLOW = runif(10, 24.9, 25.10),
SP2_FIN_SOD90 = runif(10, 0, 50))
sub4_after <- data.frame(IMP_HY_GASFLOW = runif(10, 24.9, 25.10),
SP2_FIN_SOD90 = runif(10, 0, 50))
# juste le "before"
scatterplot(SP2_FIN_SOD90 ~ IMP_HY_GASFLOW, data = sub4_before,
col='red',axes=F,xlab="",ylab="")
axis(2,col = 'darkred',at=seq(0, 50, by=10))
mtext("Axe de la courbe rouge",side=2,line=2.5,col="darkred")
axis(1,col='black',at=seq(24.90, 25.10, by=0.05))
mtext("Axe des X",side=1,line=2.5,col="black")

# just le "after"
scatterplot(SP2_FIN_SOD90 ~ IMP_HY_GASFLOW, data = sub4_after,col='green',axes=F,xlab="",ylab="")
axis(4,col='darkgreen',at=seq(0, 50, by=10))
mtext("Axe de la courbe verte",side=4,line=2.5,col="darkgreen")
axis(1,col='black',at=seq(24.90, 25.10, by=0.05))
mtext("Axe des X",side=1,line=2.5,col="black")

# On combine les deux
sub4_before$type = "before"
sub4_after$type = "after"
sub4_combined <- rbind(sub4_before, sub4_after)
scatterplot(SP2_FIN_SOD90 ~ IMP_HY_GASFLOW + type, data = sub4_combined,
col=c('red', 'green'),axes=F,xlab="",ylab="")
axis(2,col = 'darkred',at=seq(0, 50, by=10))
mtext("Axe de la courbe rouge",side=2,line=2.5,col="darkred")
axis(4,col='darkgreen',at=seq(0, 50, by=10))
mtext("Axe de la courbe verte",side=4,line=2.5,col="darkgreen")
axis(1,col='black',at=seq(24.90, 25.10, by=0.05))
mtext("Axe des X",side=1,line=2.5,col="black")

Created on 2023-01-25 by the reprex package (v2.0.1)
Sinon il y a moyen de générer les deux graphes séparément et les combiner après-coup, mais sans utiliser scatterplot()
. Ça peut être facile ou difficile selon les fonctionnalités dont tu as besoin.