Los datos con los que estoy jugando provienen de la fuente de Internet que se detalla a continuación.
nba <- read.csv("http://datasets.flowingdata.com/ppg2008.csv", sep=",")
Lo que quiero hacer es crear un gráfico de puntos 2D comparando dos métricas de esta tabla, con cada jugador representando un punto en el gráfico. Tengo el siguiente código:
nbaplot <- ggplot(nba, aes(x= MIN, y= PTS, colour="green", label=Name)) +
geom_point()
Esto me da lo siguiente:
Lo que quiero es una etiqueta del nombre del jugador justo al lado de los puntos. Pensé que la función de etiqueta en la estética de ggplot haría esto por mí, pero no fue así.
También probé la text()
función y la textxy()
función desde library(calibrate)
, ninguna de las cuales parece funcionar con ggplot.
¿Cómo puedo agregar etiquetas de nombre a estos puntos?
ggplot2
. Quizás esto te pueda ayudar.hjust = -0.1
para obtener las etiquetas impresas muy ligeramente alejadas del punto de datos.El
ggrepel
paquete funciona muy bien para repeler las etiquetas de texto superpuestas lejos una de la otra. Puede usargeom_label_repel()
(dibuja rectángulos alrededor del texto) ogeom_text_repel()
funciones.Editar: Para usar
ggrepel
con líneas, vea esto y esto .Creado el 01/05/2019 por el paquete reprex (v0.2.0).
fuente
ggplot2
dev que menciona algo similar github.com/tidyverse/ggplot2/commit/… . Puede intentar instalar tanto la versión de desarrollo deggplot2
&ggrepel
para ver si su problema está solucionadolemon
paquete que es muy bueno para manipular la leyenda de la trama.En lugar de usar el ifelse como en el ejemplo anterior, también se puede filtrar previamente los datos antes del etiquetado en función de algunos valores de umbral, esto ahorra mucho trabajo para el dispositivo de trazado:
fuente