Невозможно сгенерировать разные цвета с помощью qplot для geom=density

Я пытаюсь создать график плотности, используя qplot для переменной factor. Я использовал следующий код

qplot(
    file1$month, 
    geom = "density", 
    main ="Density function of Months", 
    xlab = "Month", 
    col=I(("red")))

который работает для окрашивания всех строк, но мне нужны разные цвета для каждой строки т.е. 12 на 12 месяцев. Ошибка говорит, что эстетика должна быть равна данным, что равно 4613. У меня явно нет данных 4613. Как рисовать разные цвета для каждого месяца?


person Prashanth Cp    schedule 31.01.2018    source источник
comment
Пожалуйста, поделитесь подмножеством ваших данных? Не зная ваших данных, я могу только предположить. Попробуйте вызвать col для факторизованной переменной с уровнями, равными названиям 12 месяцев.   -  person Punintended    schedule 01.02.2018
comment
Вероятно, что-то вроде ggplot(file1, aes(x=value_var, colour=color_var)) + geom_density(), где value_var — столбец с данными, а color_var — столбец с категориями месяцев.   -  person eipi10    schedule 01.02.2018
comment
color=color_var работал нормально. Большое спасибо!   -  person Prashanth Cp    schedule 01.02.2018


Ответы (1)


Вам понадобится столбец в file1, который определяет, какие строки какого цвета. Скажем, вы создали этот столбец и назвали его `plotColor'. Тогда это так же просто, как

qplot(
    file1$month, 
    geom = "density", 
    main ="Density function of Months", 
    xlab = "Month", 
    colour= file1$plotColour)

Не видя ваших данных, трудно дать какой-либо совет. Но я считаю, что вам просто нужен другой столбец, который помогает различать, какие цвета должны быть, и это то, что даст вам приведенное выше решение.

person LachlanO    schedule 31.01.2018
comment
Мне не нужны x и y, просто x, который представляет собой график плотности месяцев. Я получил это так же, как вы указали, установив цвет для переменных месяцев. - person Prashanth Cp; 01.02.2018
comment
Ах да, вы правы, мои извинения. Я забыл про "плотность"! - person LachlanO; 01.02.2018
comment
Просто любопытно. Если мне не нравятся цвета по умолчанию, как установить свои собственные цвета? Я знаю, что нужно создать color_var для хранения значений цветов, но поскольку предыдущая ошибка показала мне данные 4613, я не могу хранить столько цветов, сколько мне нужно 12. - person Prashanth Cp; 01.02.2018
comment
Чтобы задать цвета вручную, добавьте к коду графика следующее: + scale_color_manual(values=c("red", "blue")), где values — вектор цветов, содержащий по крайней мере столько цветов, сколько категорий в соответствующем столбце данных. Чтобы создать большое количество цветов, вы можете сделать что-то вроде scale_color_manual(values=hcl(seq(15,375,length.out=13)[1:12], 100, 65)), что создаст последовательность из 12 равномерно распределенных оттенков. Вы также можете использовать встроенные цветовые палитры, такие как scale_color_brewer или scale_color_viridis из пакета viridis. - person eipi10; 14.02.2018