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