如何根据频率在 ggplot 中绘制分组条形图?
How can I plot a grouped barplot in ggplot based on frequency?
我想用值 avg_r
和 price_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")
我想用值 avg_r
和 price_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")