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 '))) 

desenhe uma seta no ggplot2

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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *