У меня есть кадр данных, показывающий четыре класса за каждый год вместе с их соответствующими долями от общего числа за этот год.ggplot2: использование функции geom_area()
> head(df)
class year share
1 class1 1975 0.806
2 class2 1975 0.131
3 class3 1975 0.018
4 class4 1975 0.045
5 class1 1976 0.788
6 class2 1976 0.151
Когда я бегу ggplot
с не fill
указанного, я получаю однородную серую коробку, как и ожидалось.
> ggplot(df, aes(x=year, y=share, group=class)) + geom_area() + scale_fill_brewer()
Так я пытаюсь добавить fill=class
, и он не работает.
> ggplot(df, aes(x=year, y=share, group=class, fill=class)) + geom_area() + scale_fill_brewer()
Error in inherits(x, "factor") : object "base_size" not found
In addition: Warning message:
In inherits(x, "factor") : restarting interrupted promise evaluation
>
Что я могу сделать, чтобы class
фактор, чтобы он правильно работать с scale_fill_brewer()
? Очевидно, что идея состоит в том, чтобы затенять каждую область графика согласно его классу.
Спасибо.
Я не получаю такое сообщение об ошибке, используя образец данных, который вы показали нам выше, и все работает так, как ожидалось. Возможно, вы могли бы попробовать закрыть и снова открыть сеанс R и посмотреть, поможет ли это. – learnr
Можете ли вы собрать примерный пример? Я с подозрением отношусь к тому, чтобы использовать зарезервированное слово типа «класс» в качестве имени столбца. Может, так оно и есть? –
Я фактически изменил имена столбцов для стерилизации данных, поэтому проблема была там до и после имени поля класса, но я создам новый файл data.frame и отправлю пример выполнения. –