r - 绘制时间序列样本

标签 r ggplot2 time-series

我有一个数据集,其中包含连续四天中每一秒的观测值(大约 340'000 个数据点)。这太多了,无法在散点图中显示。我只想绘制一个统一的样本,比如 2000 个时间点。

是否有可能通过 ggplot2 的“图形语法”方法实现这一点?我还没有找到任何内置的“采样”修饰符,但也许写一个就足够简单了?

library(ggplot2)

x <- 1:100000
d <- data.frame(x=x, y=rnorm(length(x)))
ggplot(d[sample(x, 2000), ], aes(x=x, y=y)) + geom_point()

这就是如何通过修改传递给 ggplot 的数据来“破解”它。但我不想修改数据,只是将其过滤为仅包含一个样本。

ggplot(d, aes(x=x, y=y)) + ??? + geom_point()

编辑:我专门寻找采样,而不是平滑或装箱。我拥有的数据显示了模拟特定过程的一秒钟所花费的时间。模拟已经并行化,并且对于每个模拟秒,我都有涉及的每个内核的运行时间(总共 8 个)。我想通过仅绘制原始数据点来显示次优负载平衡。采样的原因只是 300'000 个数据点对于散点图来说太多了:绘图花费的时间太长并且可视化效果不好。

最佳答案

您可以使用数据参数在 geom_point 调用中使用子集:

... + geom_point(data=d[sample(x,2000),])

这样,您可以使用所有数据自由添加其他 geom,例如,使用示例数据:

ggplot(d, aes(x=x, y=y)) + geom_hex() + geom_point(data=d[sample(x,2000),])

hexbin and sampled points

关于r - 绘制时间序列样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12684967/

相关文章:

arrays - 如何创建和绑定(bind)空多维数组

r - 使用 R 在 ggplot 中传递字符串变量 facet_wrap()

r - ggplot2 绘图表作为线

r - 将 geom_text 放置在 geom_col 堆叠条形图中每个条形段的中间

r - 使用多色标的 ggplot2 映射栅格数据

r - 代码问题: Error in `[.data.frame` (result,,c(setdiff(names(result),names(data)),:选择了未定义的列

r - ggplot2 可以在一个图例中分别控制点大小和线条大小(线宽)吗?

python - 通过哪种适应时间序列的技术可以替换 Python 中的 Keras MLP 回归模型中的交叉验证

python - 如何获取用户 session 的 Pandas TimeSeries(使用 Pandas 或 Numpy)

python - 重采样长度不匹配错误