Estou tentando rotular um gráfico de dispersão bastante simples em R. É isso que eu uso:
plot(SI, TI)
text(SI, TI, Name, pos=4, cex=0.7)
O resultado é medíocre, como você pode ver (clique para ampliar):
Tentei compensar isso usando a textxy
função, mas não é melhor . Aumentar a imagem em si não funciona para os agrupamentos densos.
Existe alguma função ou maneira fácil de compensar isso e deixar R plotar rótulos que não se sobrepõem ?
Aqui está um pequeno subconjunto dos dados que tenho:
Name;SI;TI
01_BAD_talking_head;6.944714;4.421208
01_GOOD_talking_head;5.680141;4.864035
01_GOOD_talking_head_subtitles;7.170114;4.664205
r
data-visualization
scatterplot
slhck
fonte
fonte
identify()
Vamos você decidir manualmente onde colocar a etiqueta! Não é o ideal, mas pelas soluções propostas isso funciona melhor para mim.Respostas:
Confira o novo pacote ggrepel . O ggrepel fornece geoms para o ggplot2 repelir rótulos de texto sobrepostos. Ele funciona para geom_text e geom_label.
A figura é retirada desta postagem do blog .
fonte
O
directlabels
pacote faz isso. Na sua página da web :Porém, nem sempre é possível para gráficos densos.
Aqui está um pequeno exemplo:
Consegui me livrar da coloração pontual
col="black"
, mas não das etiquetas.fonte
direct.label(xyplot(SI~TI,data=yourDataFrame,group=Name))
deve obter um resultado semelhante.library(lattice)
para começarxyplot
a trabalhar.Eu sugiro que você dê uma olhada no
wordcloud
pacote. Sei que este pacote não se concentra exatamente nos pontos, mas nos próprios rótulos, e também o estilo parece ser bastante fixo. Mas, ainda assim, os resultados obtidos com o uso foram impressionantes. Observe também que a versão do pacote em questão foi lançada no momento em que você fez a pergunta, por isso ainda é muito nova.http://blog.fellstat.com/?cat=11
fonte
Encontrei um problema semelhante com vários dos gráficos com os quais tenho trabalhado e escrevi um pacote básico que usa simulação de campo de força para ajustar a localização dos objetos. A vantagem sobre algumas das soluções citadas acima é o ajuste dinâmico para a proximidade relativa de objetos em 2D. Embora muitas melhorias sejam possíveis, incluindo heurísticas e integração com o ggplot, etc., parece que a tarefa foi concluída. A seguir, ilustra a funcionalidade:
Por enquanto, não há heurísticas para uma variedade de áreas e distribuições de pontos, pois a solução atendeu às minhas necessidades e eu queria obter algo útil para as pessoas rapidamente, mas as adicionarei a médio prazo. No momento, recomendo dimensionar os gráficos para 100x100 e voltar e ajustar levemente os parâmetros de atração e repulsão padrão, conforme necessário.
fonte
Caso você simplesmente não consiga que os rótulos funcionem corretamente como produzidos pelo R, lembre-se de que você sempre pode salvar os gráficos em um formato vetorial (como .pdf) e puxá-los para um programa de edição como o InkScape ou o Adobe Illustrator.
fonte
Algumas ferramentas adicionais para analisar no R:
spread.labels
função noplotrix
pacotethigmophobe.labels
noplotrix
pacotespread.labs
função noTeachingDemos
pacoteTkIdentify
função noTeachingDemos
pacoteIsso não fará tudo por você, mas um deles pode fazer parte de uma solução.
fonte