Une courbe (de grèves) avec bricolage sur l’axe des x

dimanche 6 septembre 2009, par jps29

Un graphique avec deux courbes qui permettent de mesurer la part prise par la principale ville du département dans les grèves. J’ai eu des difficultés à placer les dates sur l’axe des x. A un même niveau, elles devenaient illisibles. Aussi j’ai bricolé pour les faire apparaître de manière décalée, un jour sur deux.

PNG - 154.9 ko
Courbe des grèves Finistère
juin-septembre 1936

Le code

pdf(file = "CourbeGreveJuinSept.pdf",
     width=8, height=5)

par(cex=.7)

greves29<-read.csv("fichier.csv",header=T, sep=";",row.names=2 )

attach(greves29)

greves29[1:5,1:10]


## Pour ne pas prendre en compte la colonne "Name" qui ne sert pas ici

greves29=greves29[-1]

## Pour récupérer les en-têtes de colonnes et les transformer en jour et mois

Dates<-names(greves29)

Dates<-substr(Dates,2,length(Dates))  # Transformer Xjj.mm.aa en jj.mm.aa

Dates<-gsub("[.]","/",Dates) # Transformer jj.mm.aa en jj/mm/aa

Dates <- format((as.Date(Dates, "%d/%m/%Y")), format="%d %m")



TotalJournalier<-c(colSums(greves29))

## Quelle est la plus grande valeur ?

maxi<- max(TotalJournalier)

## Courbe du total quotidien

plot(TotalJournalier, ylim = c(0, maxi), col="red", lwd = 2, type = "l", xaxt= "n", xlab = "", ylab="Nombre de grévistes")

## Graphique de la transposition de la ligne sur Brest t -> transpose

lines(t(greves29["Brest",]), ylim = c(0, maxi), col="Blue", lwd = 2, type="l", xaxt="n", xlab="")

## Dessin de l'axe des x

par(cex=1)

jours<-length(Dates)

axis(1, at = seq(1,length(Dates),by=2), labels = F, cex.axis = .4, las=2, tcl=-2)

text(x = seq(1,length(Dates),by=2),
 y = -30, # pour l'emplacement. Jouer avec cex aussi
 labels = Dates[seq(1,length(Dates),by=2)],
 xpd = NA,
 cex = .4,
 srt = 90,
 adj = c(3.4, 0.5))

axis(1, at = seq(2,length(Dates),by=2), labels = Dates[seq(0,length(Dates),by=2)], cex.axis = .4, las=2)

grille<-seq(1,122, by =2)

abline(
        v=grille,  
        col="grey",
        lty = "dotted")
legend("topright",  inset=.05, legend = c("Brest", "Finistère"), col = c("blue","red"), lty = 1, lwd = 2, cex=.7)

dev.off()

Un message, un commentaire ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message