Como adicionar linha média ao gráfico no ggplot2


Você pode usar a seguinte sintaxe básica para adicionar uma linha que representa o valor médio em um gráfico no ggplot2:

 ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  geom_hline(yintercept = mean(df$y, na. rm = TRUE ))

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: Adicione uma linha média ao gráfico em ggplot2

Suponha que temos o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (x=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12),
                 y=c(2, 5, 6, 5, 7, 8, 10, 12, 10, 9, 11, 15))

#view head of data frame
head(df)

  xy
1 1 2
2 2 5
3 3 6
4 4 5
5 5 7
6 6 8

Podemos usar o código a seguir para criar um gráfico de dispersão de x versus y e adicionar uma linha horizontal que representa o valor médio de y:

 library (ggplot2)

#create scatter plot with average line to represent average y-value
ggplot(df, aes(x=x, y=y)) +
    geom_point() +
    geom_hline(yintercept = mean(df$y, na. rm = TRUE )) 

ggplot2 adiciona linha média

Podemos ver que uma linha média foi adicionada ao gráfico logo acima do valor y de 8.

Se calcularmos o valor médio de y, descobriremos que é 8,333:

 #calculate average y-value
mean(df$y, na. rm = TRUE )

[1] 8.333333

Observe que também podemos usar os argumentos color , lty e lwd para especificar a cor, o tipo de linha e a largura da linha média, respectivamente:

 library (ggplot2)

#create scatter plot with custom average line
ggplot(df, aes(x=x, y=y)) +
    geom_point() +
    geom_hline(yintercept = mean(df$y, na. rm = TRUE ), color=' blue ', lty=' dashed ', lwd= 2 ) 

A linha do meio agora é azul, pontilhada e tem largura de linha 2.

Você pode encontrar a documentação online completa para a função geom_hline() aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns no ggplot2:

Como desenhar uma linha de tendência no ggplot2
Como ajustar a espessura da linha no ggplot2
Como definir limites de eixo no ggplot2

Add a Comment

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