r - 如何使用 R 创建一个包含 1000 行数据的散点图,由一个变量索引/绘制?
问题描述
我有一个包含 1000 行和 100 列的数据集,数字从左到右从小到大排列(这些都是日期或发生某事的年份)。我想创建这个数字数据的散点图,每一行都针对数字 1-100 的序数索引按升序绘制。因此,例如数据框是:
[1] [2] [3] [4] ... [100]
[1] 202 216 398 401 ... 2000
[2] 203 243 284 350 ... 1998
[3] 211 269 299 321 ... 2000
...
[1000] 200 247 273 300 ... 1999
我想用 1-100 索引每一行中的每个点,所以基本上用数字 1-100 绘制所有行。是否有捷径可寻?我是 R 中的新手和自学成才。我用 ggplot 尝试过,我也尝试将数据框转换为矩阵并使用 matplot,但不能完全正确。我正在拍摄 y 轴上的数字 1-100,以及 x 上的数字 1-2000。
这是我试图复制的图表示例,它是我在 Excel 中创建的(只有 250 个系列)。
我知道这将是一个非常混乱的图表,但我正在复制其他人的基于代理的模型,并希望将我的图表和结果与他们发布的数据进行比较。
解决方案
R 几乎总是考虑列中的数据,而不是行中的数据,因为ggplot
您需要长格式而不是宽格式数据。
让我们获取一些示例输入:
nr = 1000
nc = 100
set.seed(47)
m = matrix(sample(1:2000, size = nr * nc, replace = TRUE), ncol = nc)
# base
plot(x = c(1,2000), y = c(1,100), type = "n")
for(i in 1:nr) points(m[i, ], 1:100, cex = 0.1, pch = 20)
# ggplot
# get data in long format
d = data.frame(x = c(t(m)), y = rep(1:100, nr))
ggplot(d, aes(x = x, y = y)) +
geom_point(shape = '.', alpha = 0.1)
这些看起来都很糟糕,因为假数据只是均匀分布的,但它应该给你正确的想法。
推荐阅读
- python - 在使用 Pelican 生成静态 HTML 之前运行自定义脚本
- mongodb - 同一 MongoDB 中的 $push 和 $set 更新文档中的相同数组元素
- sql - 显示列中值的最小数量
- assembly - 将 ARMv8 Crypto 加速的 SHA256 集成到现有的 C 实现函数中
- c++ - 使用thrust::device_vector 的thrust::complex 编译错误,可能是由于错误的实现
- php - 两个数组 PHP 的所有组合
- sql - 删除重复值并替换为 null (Power BI - SQL)
- reactjs - 匹配某个字符串或为空的可选路由路径
- html - 在 a 中有一个列表
- 使用 Bootstrap 标记
- python - 在dict值python中访问dict