Como adicionar linha horizontal ao gráfico e legenda no ggplot2


Você pode usar a seguinte sintaxe para adicionar uma linha horizontal a um gráfico no ggplot2 e, em seguida, adicionar também a linha horizontal como um elemento na legenda:

 library (ggplot2)

#create data frame with values to plot
df <- data. frame (team=rep(c(' A ', ' B '), each= 5 ),
                 assists=c(1, 3, 3, 4, 5, 7, 7, 9, 9, 10),
                 points=c(4, 8, 12, 10, 18, 25, 20, 28, 33, 35))

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff)

Ao criar um quadro de dados separado contendo apenas o valor de interceptação y da linha horizontal, podemos adicionar a linha horizontal ao gráfico e adicioná-la automaticamente à legenda.

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

Exemplo: Adicione uma linha horizontal ao gráfico e à legenda em ggplot2

Suponha que temos o seguinte quadro de dados em R que contém informações sobre jogadores de basquete de diferentes times:

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B '), each= 5 ),
                 assists=c(1, 3, 3, 4, 5, 7, 7, 9, 9, 10),
                 points=c(4, 8, 12, 10, 18, 25, 20, 28, 33, 35))

#view data frame
df

   team assists points
1 To 1 4
2 to 3 8
3 to 3 12
4 to 4 10
5 to 5 18
6 B 7 25
7 B 7 20
8 B 9 28
9 B 9 33
10 B 10 35

Digamos que queremos criar um gráfico de dispersão no ggplot2 para visualizar os valores de pontos e assistências de cada jogador com base em seu time e, em seguida, adicionar uma linha horizontal em y = 22 para definir um “limiar” para a diferença entre o bom e o ruim jogadoras.

Podemos usar a seguinte sintaxe para fazer isso:

 library (ggplot2)

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff) 

ggplot2 adiciona uma linha horizontal à legenda

Observe que a legenda à direita do gráfico contém círculos que indicam quais pontos do gráfico pertencem a quais equipes e uma linha horizontal também foi adicionada à legenda para representar a linha de corte.

Se você deseja alterar a legenda da linha horizontal na legenda, basta editar o texto na coluna Linhas no Quebrar Quadro de Dados.

Por exemplo, podemos usar a seguinte sintaxe para alterar o rótulo da linha horizontal para “Limite do Bem versus o Mal”:

 library (ggplot2)

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff of Good vs. Bad ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff) 

Observe que o rótulo da linha horizontal na legenda mudou.

Recursos adicionais

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

Como alterar o título da legenda no ggplot2
Como alterar o tamanho da legenda no ggplot2
Como alterar a posição da legenda no ggplot2

Add a Comment

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