[Carto] Ajouter un interligne dans la fonction text()

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Nicolas Burghgraeve
Messages : 2
Enregistré le : 08 Aoû 2014, 08:35

[Carto] Ajouter un interligne dans la fonction text()

Messagepar Nicolas Burghgraeve » 08 Aoû 2014, 10:55

Bonjour à tous,

grâce à toute l'aide que j'ai pu trouver sur ce forum, j'ai réussi à faire une jolie carte et à placer mes points de coordonnées sur celle-ci, joie!

Code : Tout sélectionner

library(rworldmap)

world_map <- getMap(resolution = "low")
gps3<-read.table("gps3.txt", header=T)
pgps<-read.table("gps_pas_ech.txt",header=T)

xlim<-c(-18,30)
ylim<-c(30, 50)
xyratio <- abs((xlim[1]-xlim[2])/(ylim[1]-ylim[2]))
width<-par("pin")[1]
height<-par("pin")[2]
if (height>width/xyratio) height=width/xyratio else if(height<width/xyratio)width=height*xyratio


# Tracer le graphique
par(pin=c(width,height))
plot(world_map, ylim = c(40, 55), xlim = c(-5, 30), asp = 1, col="gray90", bg="lightblue", lwd=0.5)

# Placer les points
points(gps3$est, gps3$nord, pch=21, col= "black", bg = "red", cex = 0.8, lwd=0.5)
points(pgps$est,pgps$nord, pch=21,col="black", bg="yellow", cex= 0.8, lwd=0.5)

# ajouter la légende de chaque point (c'est là que ça cloche)
text(gps3$est+0.9, gps3$nord+0.9, labels=gps3$location, cex=0.5, font=1)
text(pgps$est+0.9, pgps$nord+0.9, labels=pgps$Nom, cex=0.5, font=1)


Seulement, le problème survient lorsque que je souhaite annoter mes points, en effet, certains d'entre-eux sont tellement proches que leurs légendes se chevauchent, et je n'arrive pas à inserer un interligne du genre

Code : Tout sélectionner

text(gps3$est+0.9, gps3$nord+0.9, labels=gps3$location, cex=0.5, font=1, y.intersp=x)

(R me signale que y.intersp n'est pas un paramètre graphique)

Je suis à court de piste pour rêgler ce problème, j'espère que certains d'entre-vous pourrons m'éclairer!

Merci d'avance!

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 11 Aoû 2014, 15:50

Il nous faudrait un exemple reproductible, ce qui n'est pas le cas de votre code actuellement. D'autre part, d'où vient l'argument y.intersp ? Je ne le vois ni dans ceux de la fct text, ni dans ceux de la fct par (d'où le msg d'erreur). Qu'est-il censé produire comme effet ?
Renaud

Nicolas Burghgraeve
Messages : 2
Enregistré le : 08 Aoû 2014, 08:35

Messagepar Nicolas Burghgraeve » 18 Sep 2014, 09:51

Bonjour,

tout d'abord, merci de votre réponse.

L'argument y.intersp est un arguement que j'ai trouvé en parcourant le forum et qui était suggéré pour ajouter un interligne dans le texte d'une légende sur un graph, c'est un des arguements que j'ai essayé sans grande conviction, et que j'ai visiblement oublié de supprimer dans mon code.

Finalement j'ai ajouté les légendes à la main via powerpoint, car je ne pense pas qu'il existe d'argument pour ajouter un interligne pour les légendes dans le type de fonction utilisé ici.

Grand merci pour votre temps!

Didier Plat
Messages : 225
Enregistré le : 02 Nov 2009, 16:47
Contact :

Messagepar Didier Plat » 18 Sep 2014, 11:28

Bonjour,
Comme le disait Renaud, un exemple pour comprendre ce que vous voulez précisément faire aurait été bien utile. S'il s'agit de jouer sur l'espacement entre deux lignes successives d'un même texte, il faut modifier l'argument lheight de la fonction par() :

Code : Tout sélectionner

op<-par(no.readonly = TRUE)
x<-rnorm(20)
y<-rnorm(20)
plot(x,y)
text(0, 0, "Essai\ntexte")
par(lheight=6)
text(0, 0, "Essai\ntexte", col="red")
par(op)


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité