r - 在 R 中绘制随时间变化的概率密度热图

标签 r plot time-series heatmap kriging

假设我有一个变量在几个不同的迭代(想想数百万)中的蒙特卡罗模拟的输出。对于每次迭代,我都有每个时间点的变量值(从 t=1 到 t=365)。

我想产生以下情节:
对于 x 轴上的每个时间点 t 和给定范围内的每个可能值“y”,将 x,y 的颜色设置为“k”,其中“k”是一个计数内有多少观测值距离“d”到 x,y 的附近。

我知道你可以很容易地为一维数据制作密度热图,但是有没有一个很好的包可以在二维上做这个?我必须使用克里金法吗?

编辑:数据结构目前是一个矩阵。

                                     data matrix

                                      day number
             [,1]    [,2]         [,3]      [,4]       [,5]      ... [,365]
iteration    [1,]    0.000213   0.001218    0.000151   0.000108  ... 0.000101
             [2,]    0.000314   0.000281    0.000117   0.000103  ... 0.000305
             [3,]    0.000314   0.000281    0.000117   0.000103  ... 0.000305
             [4,]    0.000171   0.000155    0.000141   0.000219  ... 0.000201
              .
              .
              .
     [100000000,]    0.000141   0.000148    0.000144   0.000226  ... 0.000188

我想,对于每个“天”,像素都垂直穿过“天”,以颜色表示当天迭代值的概率密度。结果应该看起来像一个热图。

最佳答案

这是我认为您所追求的一种解决方案。

  • 生成数据。
    myData <- mapply(rnorm, 1000, 200, mean=seq(-50,50,0.5))

  • 这是一个包含 1000 行(观察值)和 201 个时间点的矩阵。在每个时间点,数据的平均值从 -50 逐渐变为 50。每次移动 0.5。
  • 获取密度。
    myDensities <- apply(myData, 2, density, from=-500, to=500)

  • 这将为您提供每列的密度列表。为了让它们可以并排绘制,我们手动指定了范围(从 -500 到 500)。
  • 从列表中获取密度值。
    Ys <- sapply(myDensities, "[", "y")

  • 这又是一个列表。你需要从中得到一个矩阵。
  • 从列表中获取矩阵。
    img <- do.call(cbind, Ys)

  • 这只是简单地结合了所有 Ys按列的元素。
  • 阴谋。
    filled.contour(x=1:ncol(img), y=myDensities[[1]]$x, t(img))

  • 我为此使用了filled.contour。但是您可以四处寻找其他二维绘图函数。我还使用了从密度获得的值 D[[1]]$x .

    结果如下:

    densities

    从 -50 到 50 的转变是可见的。

    不确定这是否适用于数百万个时间点。但是绘制百万可能没有意义,因为无论如何你都会受到像素数的限制。可能需要某种预处理。

    关于r - 在 R 中绘制随时间变化的概率密度热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30820608/

    相关文章:

    r - 生成漂亮的线性回归图(拟合线、置信度/预测带等)

    java - 查找时间序列中值的变化

    r - 过滤函数的简单示例,特别是递归选项

    r - 检查时间序列数据的频率

    r - 融化多组 measure.vars

    r - 如何有效地使用 R 添加包含 0 个案例的摘要行?

    python - seaborn FacetGrid 图中时间数据的设置

    r - 从 R 导出绘图并增加大小?

    testing - 两个时间序列数据之间存在统计显着性差异

    r - R中的历史分解