У меня есть график geom_area, который выглядит следующим образом:
Я хочу окрасить все, что выше оси x, в зеленый цвет, а все, что ниже оси x, - в красный. В моих данных есть столбец category, который содержит строку "positive" для всех положительных значений и "negative" для всех отрицательных значений, поэтому я попытался просто сделать fill = category и с помощью scale_fill_manual установить положительный цвет в зеленый, а отрицательный в красный, но это дает следующее:
Зеленый цвет над осью 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"))
Моя проблема может быть связана с этим предыдущим вопросом.