/ / Як побудувати кругову діаграму в R [closed] - r, ggplot2

як розподілити діаграму в діапазоні R [closed] - r, ggplot2

У мене є наступний кадр даних в 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)