r - 绘制条形图
问题描述
我有一个 1090 行和 5 列(A、B、C、D、E)的数据框。每个列变量的所有值都在 0 和 1 之间。如何绘制一个带有 x-xis 的条形图,显示间隔分别为 0-0.2、0.2-0.4、0.4-0.6、0.6-0.8 和 0.8-1.0列变量?谢谢你。
解决方案
为了完整起见,这里还有一个melt()
用于从宽格式到长格式重塑的解决方案。几乎总是ggplot()
最适合长格式的数据。
它还显示了处理列变量的两种变体:使用不同的填充颜色堆叠和分面。
堆积条形图
library(data.table)
ggplot(melt(setDT(DT), measure.vars = names(DT))) +
aes(x = cut(value, seq(0, 1, 0.2)), fill = variable) +
geom_bar() +
xlab(("interval"))
这类似于dc37 的答案,但cut()
在aes()
.
分面条形图
library(data.table)
ggplot(melt(setDT(DT), measure.vars = names(DT))) +
aes(x = cut(value, seq(0, 1, 0.2)), fill = variable) +
geom_bar() +
facet_wrap(vars(variable), nrow = 1L) +
xlab(("interval")) +
theme(legend.position = "none")
这可能更符合 OP 的要求“一个条形图,其中 x 轴显示每个列变量的间隔为 0-0.2、0.2-0.4、0.4-0.6、0.6-0.8 和 0.8-1.0 ”。
数据
这是创建包含 5 列随机数的 data.table 的简洁方法:
library(data.table)
set.seed(123L)
DT <- setnames(as.data.table(replicate(5L, runif(100L))), LETTERS[1:5])
推荐阅读
- javascript - 使用带有异步函数的 CLS 运行 Jest 时出现问题
- javascript - SyntaxError:JSON 输入意外结束 (Node.js)
- android - 如何以编程方式在屏幕底部显示 AdMob 横幅广告?(Kotlin)
- go - 具有并发限制但测试失败的等待组
- reporting-services - 有没有办法在 SSRS 报告中添加可视化以模糊不必要的字段?
- javascript - 下划线是 js 中数字的有效分隔符
- python - 正则表达式魔法,有了它,VS Code 毁了我的整个 Jupyter Notebook
- python - 如何连接表并计算sqlalchemy中指定列的数量?
- angular - 如何从数组中获取对象?
- r - 从 SpatialPolygonsDataFrame 创建镶嵌?