r - 来自 dplyr 的挂条图
问题描述
我想弄清楚如何从 dplyr 创建一个悬挂的条形图。
我使用 dplyr 如下:
table4 <- cr %>%
group_by(samp.N, RSQ) %>%
summarize(
MRB_uc = mean(CF.F1F2/0.40*100)-100,
MRB_sb = mean(SBC.F1F2.Alpha/0.40*100) - 100,
MRB_bp = mean(BPC.F1F2.Alpha/0.40*100) - 100
)
这为我提供了这个:
samp.N RSQ MRB_uc MRB_sb MRB_bp
1 50 0.3 1.42 37.6 37.6
2 50 0.4 8.61 43.1 43.1
3 50 0.5 7.41 31.6 31.6
4 50 0.6 5.06 21.5 21.5
5 50 0.7 3.38 14.1 14.1
6 50 0.8 -1.07 5.16 5.16
7 100 0.3 -6.41 40.3 40.3
8 100 0.4 -10.6 21.0 21.0
9 100 0.5 -9.02 13.2 13.2
10 100 0.6 -9.85 5.14 5.14
11 100 0.7 -7.94 2.08 2.08
12 100 0.8 -4.81 1.28 1.28
我想要做的是创建一个悬挂条形图,其中 x 轴是 samp.N 值和 RSQ 值。条形是 MRB_uc、MRB_sb 和 MRB_bp 的值。鉴于某些值为负数,某些条形将高于零,而另一些则低于零(因此悬挂条形图)
我还没有任何代码,因为我完全不熟悉如何做到这一点。任何建议将不胜感激。
解决方案
感谢 r-help listserv 上的海报提供了我正在寻找的答案。
library(ggplot2)
library(dplyr)
library(tidyr)
dta <- read.table( text =
"samp.N RSQ MRB_uc MRB_sb MRB_bp
50 0.3 1.42 37.6 37.6
50 0.4 8.61 43.1 43.1
50 0.5 7.41 31.6 31.6
50 0.6 5.06 21.5 21.5
50 0.7 3.38 14.1 14.1
50 0.8 -1.07 5.16 5.16
100 0.3 -6.41 40.3 40.3
100 0.4 -10.6 21.0 21.0
100 0.5 -9.02 13.2 13.2
100 0.6 -9.85 5.14 5.14
100 0.7 -7.94 2.08 2.08
100 0.8 -4.81 1.28 1.28
", header = TRUE )
dta2 <- ( dta
%>% mutate( samp.N = factor( samp.N )
, RSQ = factor( RSQ )
)
%>% gather( Measure, value, -c( samp.N, RSQ ) )
)
ggplot( dta2, aes( x = RSQ, y = value, fill = samp.N ) ) +
geom_bar( stat = "identity", position = "dodge", colour = "black" ) +
facet_wrap( ~ Measure, ncol = 1, scale = "free_y" ) +
ylab( "" )
推荐阅读
- java - 在 Ubuntu WSL 中运行 bash 脚本时出现不一致的 S3 参数验证错误
- firebase - Firestore 中的 Dialogflow 更新用户
- java - 在 Spring Batch 中使用 Teradata - 缺少方法 isWrapperFor
- python - 为什么我的神经网络使用 Jax 不收敛?
- c++ - C ++中类字段对齐和对象实例对齐之间的关系?
- vue.js - API Vue js 的搜索栏
- python - 如何将原始数据加载到python中
- python - 如何将具有相同索引的多个列表中的项目附加到其原始列表中?
- postgresql - 如何在 psql cli 模式下运行“Schema Diff”
- python - 如果计算时间过长,如何关闭程序?