Problema
Tenemos un diagrama de dispersión.
qplot(dpi, sr, data = LifeCycleSavings)
Si etiquetáramos todos los puntos obtendríamos un gráfico con muchas de las etiquetas superpuestas.
qplot(dpi, sr, data = LifeCycleSavings, label = rownames(data))+
geom_text(vjust = 1.5)
Solución
Opción 1
LifeCycleSavings$lab <- rownames(LifeCycleSavings)
newlab <- subset(LifeCycleSavings, lab %in% c("Canada", "Sweden", "United Kingdom", "United States", "Iceland", "Japan", "Spain", "Netherlands", "Switzerland", "Denmark"))
- lab, creamos una nueva columna con los nombres de las filas.
- newlab, subconjunto de las filas que deseamos etiquetar.
- Utilizamos lab dentro de aes y las nuevas, newlab, en geom_text.
- qplot
qplot(dpi, sr, data = LifeCycleSavings, label = lab)+
geom_text(data = newlab , vjust = 1.5)
- ggplot
ggplot(LifeCycleSavings, aes(x = dpi, y = sr, label = lab)) +
geom_point() +
geom_text(data = newlab , vjust = 1.5)
Opción 2
Name <- rownames(LifeCycleSavings)
idx <- Name %in% c("Canada", "Sweden", "United Kingdom", "United States", "Iceland", "Japan", "Spain", "Netherlands", "Switzerland", "Denmark")
Name[!idx] <- NA
- Name, vector con los nombres de las etiquetas: nombres de las filas.
- idx, vector lógico (verdadero o falso) con TRUE para las etiquetas que deseamos conservar.
- Asignamos al vector Name el valor NA para aquellos nombres no presentes en el vector anterior.
- qplot
qplot(dpi, sr, data = LifeCycleSavings, label = Name)+
geom_text(vjust = 1)
- ggplot
p <- ggplot(LifeCycleSavings, aes(x = dpi, y = sr, label = Name))
p + geom_point() + geom_text(vjust = 1.5)
Opción3Con el paquete base graphics
plot(sr ~ dpi,
LifeCycleSavings,
xlab = 'Real Per-Capita Disposable Income',
ylab = 'Aggregate Personal Savings',
main = 'Intercountry Life-Cycle Savings Data')
text(LifeCycleSavings$dpi,
LifeCycleSavings$sr,
Name, pos = 1)
Referencias
No hay comentarios:
Publicar un comentario