首页 > 解决方案 > 带有 ggplot2 geom_bar 的分组条形图正在绘制比例而不是计数

问题描述

我正在尝试绘制一个分组条形图(x,y 由另一个变量),但我得到一个比例图(0-1)而不是计数,所有条形图都变为 1。我很困惑,因为代码似乎是正确的(使用统计身份和位置闪避)

我试过分解变量,不起作用。数据框是长格式的。

ggplot(supra.long, aes(condition, measurement, fill = MODE)) +
  geom_bar(position = 'dodge', stat = "identity") 

当我绘制这小部分数据时得到了相同的结果:

 A tibble: 6 x 3

condition measurement MODE 
  <chr>           <dbl> <chr>

INTACT              1 US   
INTACT              0 US   
INTACT              1 US   
FT                  0 MRI  
FT                  1 MRI  
FT                  0 MRI 

我期待在 y 轴上有一个计数图,但是这些条在比例尺度上都变为 1。

标签: rggplot2geom-bar

解决方案


我可能会在绘制数据之前汇总数据并使用“身份”统计信息。

library(dplyr)
condition <- c("INTACT","INTACT","INTACT","FT","FT","FT")
measurement <- c(1,0,1,0,1,0)
MODE <- c("US","US","US","MRI","MRI","MRI")
supra.long <- data.frame(condition, measurement, MODE) %>%
  group_by(condition, MODE) %>%
  summarise(count = sum(measurement))

ggplot(supra.long) +
  geom_bar(aes(x=condition, y=count, fill = MODE), position = 'dodge', stat = "identity") 

或者我会过滤掉零并使用“计数”统计信息。

supra.long <- data.frame(condition, measurement, MODE) %>% filter(measurement > 0)
ggplot(supra.long) +
  geom_bar(aes(x=condition,fill = MODE), position = 'dodge', stat = "count") 

希望有帮助。


推荐阅读