2009-11-11 7 views
1

У меня есть кадр данных, показывающий четыре класса за каждый год вместе с их соответствующими долями от общего числа за этот год.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()? Очевидно, что идея состоит в том, чтобы затенять каждую область графика согласно его классу.

Спасибо.

+0

Я не получаю такое сообщение об ошибке, используя образец данных, который вы показали нам выше, и все работает так, как ожидалось. Возможно, вы могли бы попробовать закрыть и снова открыть сеанс R и посмотреть, поможет ли это. – learnr

+0

Можете ли вы собрать примерный пример? Я с подозрением отношусь к тому, чтобы использовать зарезервированное слово типа «класс» в качестве имени столбца. Может, так оно и есть? –

+0

Я фактически изменил имена столбцов для стерилизации данных, поэтому проблема была там до и после имени поля класса, но я создам новый файл data.frame и отправлю пример выполнения. –

ответ

0

Проблема была в некоторых параметрах темы, которые я установил, поэтому она ушла, как только я начал создавать воспроизводимый пример для воспроизведения здесь. Спасибо за помощь.

1

У меня была эта проблема. Он швы, что

theme_set(theme_bw(base_size=9)) 

Результаты сообразуются об ошибке. Но

base_size <- 9 
theme_set(theme_bw(base_size=base_size)) 

работает.

Я гугл и нашел пример в learnr blog

Я не знаю, что первый пример не работает, хотя?