У мене є наступний кадр даних в R і хочемо зробити з нього кругова діаграма
berth_day count
Friday 74
Monday 95
Saturday 126
Sunday 114
Thursday 62
Tuesday 85
Я роблю наступне в R
ggplot(aes(x=berth_day, y=count))+
geom_bar(width =1)
+ coord_polar(theta = "y")
Але це дає мені наступну помилку
> ggplot(aes(x=berth_day, y=count))+
+ geom_bar(width =1)
Error: ggplot2 doesn"t know how to deal with data of class uneval
> + coord_polar(theta = "y")
Error in +coord_polar(theta = "y") : invalid argument to unary operator
Як я можу зробити це в R?
Відповіді:
1 для відповіді № 1Незрозуміло, чи дані ОП з'являються з труби або забули додати в ggplot
дзвонити
df1N <- df1 %>% mutate(berth_day = factor(berth_day))
ggplot(df1N, aes(x=berth_day, y=count, fill = berth_day))+
geom_bar(width =1, stat = "identity")+
coord_polar(theta = "y")
Як сказав @GGamba у коментарі, geom_bar
замість використання використовується geom_col
ggplot(df1N, aes(x=berth_day, y=count, fill = berth_day))+
geom_col(width=1)+
coord_polar(theta = "y")
1 для відповіді № 2
Правильний пиріг побудований таким чином:
library(ggplot2)
ggplot(df1, aes(x = 1, y = count, fill = berth_day))+
geom_col(position = "stack",
show.legend = F) +
geom_text(aes(label = paste(berth_day, ": ", count)),
position = position_stack(vjust = .5)) +
coord_polar(theta = "y") +
theme_void()
дані:
df1 <- read.table(text = "berth_day count
Friday 74
Monday 95
Saturday 126
Sunday 114
Thursday 62
Tuesday 85", h = T)