Com este quadro de dados ("df"):
year pollution
1 1999 346.82000
2 2002 134.30882
3 2005 130.43038
4 2008 88.27546
Eu tento criar um gráfico de linhas como este:
plot5 <- ggplot(df, aes(year, pollution)) +
geom_point() +
geom_line() +
labs(x = "Year", y = "Particulate matter emissions (tons)", title = "Motor vehicle emissions in Baltimore")
O erro que recebo é:
geom_path: cada grupo consiste em apenas uma observação. Você precisa ajustar a estética do grupo?
O gráfico aparece como um gráfico de dispersão, mesmo que eu queira um gráfico de linhas. Tentei substituir geom_line()
por geom_line(aes(group = year))
mas não funcionou.
Em uma resposta, disseram-me para converter o ano em uma variável fator. Eu fiz e o problema persiste. Esta é a saída de str(df)
e dput(df)
:
'data.frame': 4 obs. of 2 variables:
$ year : num 1 2 3 4
$ pollution: num [1:4(1d)] 346.8 134.3 130.4 88.3
..- attr(*, "dimnames")=List of 1
.. ..$ : chr "1999" "2002" "2005" "2008"
structure(list(year = c(1, 2, 3, 4), pollution = structure(c(346.82,
134.308821199349, 130.430379885892, 88.275457392443), .Dim = 4L, .Dimnames = list(
c("1999", "2002", "2005", "2008")))), .Names = c("year",
"pollution"), row.names = c(NA, -4L), class = "data.frame")
df
não seja o que você pensa que é. Por favor, indique sua pergunta de forma reproduzível, ou seja, mostre a saída dedput(df)
.Respostas:
Você só precisa adicionar
group = 1
no ggplot ou geom_line aes ().Referência: Livro de receitas para R, Capítulo: Barra de gráficos e linhas_gráficas_ (ggplot2), Gráficos de linhas.
Tente o seguinte:
fonte
group
argumento. Agrupamento única por exemplo,color
não seria sufficient.I só tinha este problema e espero que isso ajude alguém correndo na mesmaVocê recebe esse erro porque uma de suas variáveis é realmente uma variável de fator. Executar
para verificar isso. Em seguida, faça essa alteração dupla para manter os números do ano em vez de se transformar em números de nível "1,2,3,4":
EDIT: parece que seu data.frame possui uma variável da classe "array" que pode causar o pb. Tente então:
e tramar de novo?
fonte
Eu tive um problema semelhante com o quadro de dados:
Eu acho que a variável para o eixo x deve ser numérica, para que geom_line saiba como conectar os pontos para desenhar a linha.
depois de alterar a 2ª coluna para numérico:
então funciona.
fonte
Inicie o R em uma nova sessão e cole-a em:
fonte
Eu recebi um prompt semelhante. Foi porque eu havia especificado o eixo x em termos de alguma porcentagem (por exemplo: 10% A, 20% B, ....). Portanto, uma abordagem alternativa seria multiplicar esses valores e escrevê-los da forma mais simples.
fonte