Pouvez-vous m'aider à mettre des étiquettes sur le graphique suivant?
Le code que j'utilise est:
valbanks<-scan("banks.txt", what=list(0,0,""), sep="", skip=1, comment.char="#")
valbanks
valj2007<-valbanks[[1]]
valj2009<-valbanks[[2]]
namebank<-valbanks[[3]]
percent_losses<-(valj2009-valj2007)/valj2007
percent_losses
abs_losses<-(valj2007-valj2009)
abs_losses
plot(abs_losses, percent_losses,main="Absolute Losses vs. Relative Losses(in%)",xlab="Losses (absolute, in miles of millions)",ylab="Losses relative (in % of January´2007 value",col="blue", pch = 19, cex = 1, lty = "solid", lwd = 2,text(percet_losses, abs_losses,namebank))
text(percet_losses, abs_losses,labels=namebank, cex= 0.7, offset = 10)
et les données sont:
Value_Jan_2007 Value_Jan_2009 Bank #
49 16 Morgan_Stanley
120 4.6 RBS
76 10.3 Deutsche_Bank
67 17 Credit_Agricole
80 26 Societé_Generale
91 7.4 Barclays
108 32.5 BNP-Paribas
93 26 Unicredit
116 35 UBS
75 27 Credit_Suise
100 35 Goldman_Sachs
116 64 Santander
255 19 Citigroup
165 85 JP_Morgan
215 97 HSBC
Merci beaucoup
Quelle est la possibilité de mettre l'étiquette en bas, à droite, en haut, à gauche, ...?
Résumer: je veux un graphique semblable à celui qui est dans le deuxième message de cet article , Mais il n’ya pas de code.
Quel code je dois mettre?
si je mets text(percet_losses, abs_losses,namebank)
, je n’obtiens rien: le graphique continue sans changement.
Pourriez-vous me montrer le code que j'ai besoin de mettre?
Merci
Votre appel à text()
ne génère rien car vous avez inversé votre x et votre y:
plot(abs_losses, percent_losses,
main= "Absolute Losses vs. Relative Losses(in%)",
xlab= "Losses (absolute, in miles of millions)",
ylab= "Losses relative (in % of January´2007 value)",
col= "blue", pch = 19, cex = 1, lty = "solid", lwd = 2)
text(abs_losses, percent_losses, labels=namebank, cex= 0.7)
Maintenant, si vous souhaitez déplacer vos étiquettes vers le bas, la gauche, le haut ou la droite, vous pouvez ajouter l'argument pos=
avec les valeurs respectives 1, 2, 3 ou 4. Par exemple, pour placer vos étiquettes vers le haut:
text(abs_losses, percent_losses, labels=namebank, cex= 0.7, pos=3)
Vous pouvez bien sûr donner un vecteur de valeur à pos
si vous souhaitez que certaines étiquettes soient dans d'autres directions (par exemple, pour Goldman_Sachs, UBS et Société_Generale car elles chevauchent d'autres étiquettes):
pos_vector <- rep(3, length(namebank))
pos_vector[namebank %in% c("Goldman_Sachs", "Societé_Generale", "UBS")] <- 4
text(abs_losses, percent_losses, labels=namebank, cex= 0.7, pos=pos_vector)
J'ai essayé le paquet directlabels
pour mettre des étiquettes de texte. Dans le cas des nuages de points, ce n'est pas encore parfait, mais bien mieux que d'ajuster manuellement les positions, en particulier dans les cas où vous préparez les tracés préliminaires et non le dernier - vous devez donc changer et créer à nouveau parcelle -.
Pour tracer un vecteur, utilisez la commande suivante:
text(your.vector, labels=your.labels, cex= labels.size, pos=labels.position)
Vous devez utiliser l'attribut labels à l'intérieur de la fonction de tracé et la valeur de cet attribut doit être le vecteur contenant les valeurs que vous souhaitez attribuer à chaque point.