r - 带有 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。
解决方案
我可能会在绘制数据之前汇总数据并使用“身份”统计信息。
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")
希望有帮助。
推荐阅读
- javascript - 拆分JS字符串正则表达式大写后跟小写
- java - Java 线程和异常处理
- python - Django - 在进程运行时显示 shell 输出命令
- azure-service-fabric - 在无状态服务的所有活动实例上调用相同的方法
- excel - IF Then 语句中的 VBA 数组公式和目标搜索
- javascript - TypeError:在未实现接口位置的对象上调用了“分配”
- yii2 - Yii2 唯一验证者加入错误
- nginx - 如何在 IBM bluemix Cloud Foundry 上设置 nginx.conf 以进行单页应用程序路由以及如何设置 url 重写以支持 spa 路由?
- javascript - 如何使用 Django 显示日志
- node.js - NodeJS Socket.io - 发送有效,接收无效