Accueil du site > Outils > R pour les très nuls (comme moi) > Deux courbes et des couleurs

Deux courbes et des couleurs

mardi 30 juin 2009, par jps29.

Deux courbes qui se croisent. Le code m’a été proposé par Julien Barnier sur la liste de diffusion des utilisateurs de R.

le code :

# pdf(file = "Naissances Deces19141939.pdf",
#      width=8, height=5)

library(spatstat)
library("gtools")
library("gdata")


demographie<-read.xls("demographieFP.xls",sheet=5, row.names=1)


attach(demographie)
demographie

Date<-row.names(demographie)
Date
par(mfrow=c(1,1))


xrange <- 1:26
xrange
x0 <- xrange[-length(xrange)]
x1 <- xrange[-1]
y1 <- Naissances

y2 <- Deces
win <- owin(range(xrange), range(c(y1,y2)))
seg1 <- psp(x0, y1[-length(y1)], x1, y1[-1], window=win)
seg2 <- psp(x0, y2[-length(y2)], x1, y2[-1], window=win)
cross <- crossing.psp(seg1,seg2)

plot(xrange,y1, type="l", col=1,lwd=3,
   xaxt="n",
   xlab="",ylab="",cex.axis = 0.6)
grid()
abline(v = c(1:26), col = "grey", lty = 3)
lines(y2, col=2, lwd=3)
plot(cross, add=TRUE, col="green")

axis(1, at = 1:length(Naissances), labels = Date, cex.axis = 0.6)

for (i in seq(1:(cross$n+1))) {
cx <- c(min(xrange),cross$x,max(xrange))
cy <- c(y1[1],cross$y,y1[length(y1)])
pxrange <- ceiling(cx[i]):floor(cx[i+1])
py1 <- y1[pxrange]
py2 <- y2[pxrange]
if (py1[1] > py2[1]) couleur <- "pink"
else couleur <- "grey"
polygon(c(cx[i], pxrange, cx[i+1], rev(pxrange)), c(cy[i], py1, cy[i+1], rev(py2)),
        col = couleur, border = NA)
}



legend("topright", legend = c("Naissances", "Décès"),
        col = c(1, 2), # couleur des lignes
        lty = 1,
        lwd = 2,
        bty != "n",
        cex = 0.7,
        bg = "white",
        )
       
dev.off()

Répondre à cet article

modération à priori

Attention, votre message n'apparaîtra qu'après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d'abord sur gravatar.com (gratuit et indolore) et n'oubliez pas d'indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici


Haut | SPIP | Plan du site | Suivre la vie du site RSS 2.0 | Se connecter