С этим фреймом данных ("df"):
year pollution
1 1999 346.82000
2 2002 134.30882
3 2005 130.43038
4 2008 88.27546
Я пытаюсь создать линейный график следующим образом:
plot5 <- ggplot(df, aes(year, pollution)) +
geom_point() +
geom_line() +
labs(x = "Year", y = "Particulate matter emissions (tons)", title = "Motor vehicle emissions in Baltimore")
Я получаю ошибку:
geom_path: каждая группа состоит только из одного наблюдения. Вам нужно настроить эстетику группы?
Диаграмма отображается в виде точечной диаграммы, хотя я хочу линейную диаграмму. Я пытался заменить geom_line()
с , geom_line(aes(group = year))
но это не сработало.
В ответ мне было сказано преобразовать год в факторную переменную. Я сделал, и проблема остается. Это вывод str(df)
и 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
это не то, что вы думаете. Пожалуйста, сформулируйте свой вопрос в воспроизводимой форме, т.е. покажите результатdput(df)
.Ответы:
Вам нужно только добавить
group = 1
в ggplot или geom_line aes ().Ссылка: Кулинарная книга для R, Глава: Графики Bar_and_line_graphs_ (ggplot2), Линейные графики.
Попробуй это:
источник
group
аргументом. Группировать только, например,color
было бы недостаточно. У меня просто была эта проблема, и я надеюсь, что это поможет кому-тоВы получаете эту ошибку, потому что одна из ваших переменных является факторной переменной. казнить
чтобы проверить это. Затем выполните двойное изменение переменной, чтобы сохранить числа года вместо преобразования в числа уровня «1,2,3,4»:
РЕДАКТИРОВАТЬ: кажется, что ваш data.frame имеет переменную класса «массив», который может вызвать pb. Попробуйте тогда:
и снова заговор?
источник
У меня была похожая проблема с фреймом данных:
Я думаю, что переменная для оси х должна быть числовой, чтобы geom_line знал, как соединить точки, чтобы нарисовать линию.
после того, как я изменил 2-й столбец на числовой:
тогда это работает.
источник
Запустите R в новой сессии и вставьте это в:
источник
Я получил похожую подсказку. Это потому, что я указал ось х в процентах (например, 10% A, 20% B, ....). Таким образом, альтернативный подход может заключаться в том, что вы умножаете эти значения и записываете их в простейшей форме.
источник