如何根据频率在 ggplot 中绘制分组条形图?

How can I plot a grouped barplot in ggplot based on frequency?

我想用值 avg_rprice_l 绘制一个分组条形图,但基于 price_l 的频率。 我试过这样的事情:

g1 <- ggplot(sub.dt, aes(fill=price_l, y=seq(0,24,1), x=avg_r)) + 
  geom_bar(position="dodge", stat="identity")

g1

这给了我:

所以,例如 2.5 应该在 y 轴上为 1。 这是一些复制代码:

price_l <- c('€€-€€€', '€€-€€€', '€€€€', '€€-€€€', '€€-€€€', 
             '€€-€€€', '€€€€', '€€-€€€', '€€€€', '€€-€€€', 
             '€€-€€€', '€€-€€€', '€€-€€€', '€€-€€€', 
             '€€-€€€', '€€-€€€', '€€-€€€', '€€-€€€', '€€€€','€', '€', 
             '€', '€','€€€€', '€')

avg_r <- c('4.5', '3.5', '4.0', '4.0', '4.0', '3.5', '4.5', '4.0', '3.0', '4.0', 
           '3.0', '5.0', '4.5', '4.0', '3.0',
           '3.5', '4.5', '3.5', '3.5', '4.0', '3.0', '4.0', '4.0', '2.5', '4.5')
             
sub.dt <- data.table(price_l, avg_r)

使用stat = "count":

ggplot(sub.dt, aes(fill=price_l, x=avg_r)) + 
  geom_bar(position="dodge", stat="count")