Как заполнить график geom_area() с помощью ggplot?

У меня есть график geom_area, который выглядит следующим образом: area plot

Я хочу окрасить все, что выше оси x, в зеленый цвет, а все, что ниже оси x, - в красный. В моих данных есть столбец category, который содержит строку "positive" для всех положительных значений и "negative" для всех отрицательных значений, поэтому я попытался просто сделать fill = category и с помощью scale_fill_manual установить положительный цвет в зеленый, а отрицательный в красный, но это дает следующее: colored area plot

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

Вот пример моих данных:

created                 score   category
2011-10-19 21:26:19     2   positive
2011-10-19 22:50:33    -2   negative
2011-10-20 15:12:38    -2   negative
2011-10-20 17:19:24    -2   negative
2011-10-20 22:12:44     2   positive
2011-10-20 22:16:57     4   positive
2011-10-21 08:22:53     2   positive

и вот код, который я использую для построения графика:

ggplot(data = df, aes(x = created, y = score, color = category)) + geom_point(aes(fill = category)) + scale_fill_manual(values = c("positive" = "green", "negative" = "red"))

Моя проблема может быть связана с этим предыдущим вопросом.

6
задан Community 23 May 2017 в 10:32
поделиться