Ошибка ggplot2: дискретное значение передается в непрерывную шкалу R

У меня есть набор данных с именем alldata, который содержит 1000 строк и 2 столбца с именами day_of_Week и label. Набор данных выглядит следующим образом:

day_of_Week    label
      5        Wday, Clicked
      2        Wday, Clicked
      4        Wday, Clicked
      4        Wday, Clicked
      2        Wday, Clicked
      6        Wday, Clicked
      2        Wday, Clicked
      2        Wday, Clicked
      3        Wday, Clicked
      2        Wday, Clicked

Я использую ggplot2 для построения данных,

ggplot(alldata, aes(day_of_Week, fill = label)) + geom_density(alpha = 0.2) + xlim(55, 70)

Но я получаю эту ошибку

Ошибка: дискретное значение передается на непрерывную шкалу

Я изменил значение xlim или alpha, но все еще получаю сообщение об ошибке. Вы хоть представляете, что не так с этим кодом? откуда ошибка и как заставить работать?

Спасибо


person estu    schedule 28.11.2015    source источник
comment
Я думаю, вы указываете фактор или символ для чего-то, что ggplot ожидает числовое. Вы можете проверить классы с str(alldata)   -  person jazzurro    schedule 28.11.2015


Ответы (1)


Как это? (код ниже)

geom_density

alldata  <- structure(list(day_of_Week = c(5L, 2L, 4L, 4L, 2L, 6L, 2L, 2L, 
3L, 2L), label = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L), .Label = "Wday, Clicked", class = "factor")), .Names = c("day_of_Week", 
"label"), class = "data.frame", row.names = c(NA, -10L))

# install.packages("ggplot2", dependencies = TRUE)
require(ggplot2)

m <- ggplot(alldata, aes(x = day_of_Week))
m + geom_density(aes(fill=label))

Можно более наглядно

alldata$label2 <- rep(c("Wday, Clicked", "Wday, Not clicked"), 5)

m <- ggplot(alldata, aes(x = day_of_Week))
m + geom_density(aes(fill=label2), alpha=0.3)

введите здесь описание изображения

person Eric Fail    schedule 28.11.2015
comment
Спасибо за объяснение раньше. Но та же ошибка остается, когда я добавляю код с помощью xlim (55,70). Вы знаете, почему xlim не может работать с данными? - person estu; 28.11.2015
comment
Я не уверен, что вы хотите, но диапазон range(alldata$day_of_Week) вашей переменной x равен 2:6, очевидно, что xlim(55,70) не имеет особого смысла. Я запустил + xlim(3, 5), и у меня все заработало. Это отвечает на ваш вопрос? - person Eric Fail; 28.11.2015