Os dados com os quais estou jogando são da fonte da Internet listada abaixo
nba <- read.csv("http://datasets.flowingdata.com/ppg2008.csv", sep=",")
O que eu quero fazer é criar um gráfico de pontos 2D comparando duas métricas desta tabela, com cada jogador representando um ponto no gráfico. Eu tenho o seguinte código:
nbaplot <- ggplot(nba, aes(x= MIN, y= PTS, colour="green", label=Name)) +
geom_point()
Isso me dá o seguinte:
O que eu quero é um rótulo com o nome do jogador ao lado dos pontos. Eu pensei que a função de rótulo na estética do ggplot faria isso por mim, mas não o fez.
Eu também tentei a text()
função e a textxy()
função from library(calibrate)
, nenhuma das quais parece funcionar com o ggplot.
Como posso adicionar rótulos a esses pontos?
ggplot2
. Talvez isso possa ajudá-lo.hjust = -0.1
para afastar um pouco as etiquetas impressas do ponto de dados.O
ggrepel
pacote funciona muito bem para afastar os rótulos de texto sobrepostos. Você pode usargeom_label_repel()
(desenha retângulos ao redor do texto) ougeom_text_repel()
funções.Editar: Para usar
ggrepel
com linhas, veja isto e isto .Criado em 2019-05-01 pelo pacote reprex (v0.2.0).
fonte
ggplot2
dev que mencionava algo semelhante github.com/tidyverse/ggplot2/commit/… . Você pode tentar instalar a versão de desenvolvimento doggplot2
&ggrepel
para ver se o seu problema foi corrigido #lemon
pacote que é muito bom em manipular a legenda da trama.Em vez de usar o ifelse como no exemplo acima, também é possível pré-filtrar os dados antes da rotulagem com base em alguns valores limite, economizando muito trabalho para o dispositivo de plotagem:
fonte