studio - superponer graficas en r
¿Cómo puedo etiquetar puntos en este diagrama de dispersión? (4)
Debe usar las etiquetas atributo dentro de la función de trazado y el valor de este atributo debe ser el vector que contiene los valores que desea que tenga cada punto.
¿Puedes ayudarme a poner etiquetas en el siguiente gráfico?
El código que uso es:
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)
y los datos son:
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
Muchas gracias
¿Cuál es la opción de colocar la etiqueta en la parte inferior, derecha, arriba, izquierda, ...?
Resumiendo: quiero una gráfica similar a la que se encuentra en el segundo mensaje de esta publicación, pero no hay el código allí.
¿Qué código tengo que poner?
Si pongo text(percet_losses, abs_losses,namebank)
, no text(percet_losses, abs_losses,namebank)
nada: la gráfica continúa sin cambios.
¿Podrías mostrarme el código que necesito poner?
Gracias
He intentado el paquete directlabels
para poner etiquetas de texto. En el caso de los gráficos de dispersión, todavía no es perfecto, pero es mucho mejor que ajustar manualmente las posiciones, especialmente en los casos en los que está preparando los gráficos de borrador y no el final, por lo que debe cambiar y realizar el gráfico una y otra vez.
Para solo trazar un vector, debes usar el siguiente comando:
text(your.vector, labels=your.labels, cex= labels.size, pos=labels.position)
Su llamada a text()
no genera nada porque invirtió su x y su 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)
Ahora, si desea mover sus etiquetas hacia abajo, hacia la izquierda, hacia arriba o hacia la derecha, puede agregar el argumento pos=
con valores, respectivamente, 1, 2, 3 o 4. Por ejemplo, para colocar sus etiquetas hacia arriba:
text(abs_losses, percent_losses, labels=namebank, cex= 0.7, pos=3)
Por supuesto, puede dar un vector de valor para pos
si quiere algunas de las etiquetas en otras direcciones (por ejemplo, para Goldman_Sachs, UBS y Société_Generale, ya que se superponen con otras etiquetas):
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)