Como desenhar setas no ggplot2 (com exemplos)
Você pode usar a seguinte sintaxe básica para desenhar uma seta em um gráfico no ggplot2:
library (ggplot2) ggplot(df, aes(x=x, y=y)) + geom_point() + geom_segment(aes(x= 5 , y= 6 , xend= 8 , yend= 9 ), arrow = arrow(length=unit( 0.5 , ' cm ')))
Aqui está o que cada argumento faz na função geom_segment() :
- x : O valor x para começar
- y : O valor y para começar
- xend : O valor x para terminar em
- yend : O valor de y para terminar em
- seta : O comprimento da ponta da seta
O exemplo a seguir mostra como desenhar uma seta usando ggplot2 na prática.
Exemplo: desenhando setas no ggplot2
Suponha que temos o seguinte banco de dados contendo informações sobre o número de pontos marcados e rebotes coletados por vários jogadores de basquete:
#create data frame df <- data. frame (points=c(3, 3, 5, 6, 7, 8, 9, 9, 8, 5), rebounds=c(2, 6, 5, 5, 8, 5, 9, 9, 8, 6)) #view data frame df rebound points 1 3 2 2 3 6 3 5 5 4 6 5 5 7 8 6 8 5 7 9 9 8 9 9 9 8 8 10 5 6
Podemos usar a seguinte sintaxe para criar um gráfico de dispersão em ggplot2 e adicionar uma seta em um local específico do gráfico:
library (ggplot2) #create scatterplot and add arrow ggplot(df, aes(x=points, y=rebounds)) + geom_point() + geom_segment(aes(x= 5 , y= 6 , xend= 8 , yend= 9 ), arrow = arrow(length=unit( .5 , ' cm ')))
Sinta-se à vontade para alterar o valor na função arrow() para aumentar ou diminuir o tamanho da ponta da seta.
Por exemplo, o código a seguir mostra como aumentar o tamanho:
library (ggplot2) #create scatterplot and add arrow with increased arrow head size ggplot(df, aes(x=points, y=rebounds)) + geom_point() + geom_segment(aes(x= 5 , y= 6 , xend= 8 , yend= 9 ), arrow = arrow(length=unit( 2 , ' cm ')))
Você também pode usar os argumentos color e lwd para alterar a cor e a largura da linha da seta, respectivamente:
library (ggplot2) #create scatterplot and add customized arrow ggplot(df, aes(x=points, y=rebounds)) + geom_point() + geom_segment(aes(x= 5 , y= 6 , xend= 8 , yend= 9 ), arrow = arrow(length=unit( .5 , ' cm ')), color=' red ', lwd= 3 )
Sinta-se à vontade para brincar com os diferentes argumentos da função geom_segment() para criar uma seta exatamente como você deseja.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns no ggplot2:
Como remover linhas de grade no ggplot2
Como sombrear uma área no ggplot2
Como alterar os rótulos do eixo X no ggplot2