首页 > 解决方案 > 如何用栅格图表示数据并显示 R 中的某些数据点是好/坏?

问题描述

我正在处理表示 n 个信号及其在 m 个不同时刻(m ~ 1500,n ~ 50)中的值的数据。我想出了一个算法来检查哪些值代表每个信号,哪些不是,所以我得到 n 个信号和 m 个 True/False 值,它们告诉我该值是否具有代表性。我也知道真/假值分组得很好,这意味着如果我取两个附近的值,它们相同的概率比它们不同的概率要高得多。我在R工作。

我想可视化这个算法输出的结果。为了做到这一点,我试图做一个光栅图,每个点都充满了信号的值,每组真/假值都有一个可见的边界。与下图类似,但略有不同。

在此处输入图像描述

我也愿意接受有关如何可视化这些数据的其他方法的建议。

我有一个矩阵 n * m 为我提供数据以制作光栅图,另一个矩阵 n * m (真/假值)告诉我哪些点是好/坏的。

下面的代码是我得到的最接近答案的代码,但是组内仍然有一个寄宿生,这对我不起作用。

library(ggplot2)

n = 5
m = 10

dataMatrix <- data.frame(cbind(1:m, matrix(runif(n * m), ncol = n)))
trueMatrix <- data.frame(cbind(1:m, matrix(rep(c(T, T, T, F, F), m), ncol = n)))

dataMatrix <- gather(dataMatrix, key = Signal, value = Value, -1)
trueMatrix <- gather(trueMatrix, key = TrueFalse, value = Value, -1)

dataMatrix$Representativeness <- trueMatrix$Value
dataMatrix$Signal <- as.integer(gsub("X", "", dataMatrix$Signal))

ggplot(data = dataMatrix) +
  geom_raster(mapping = aes(x = X1, y = Signal, fill = Value)) +
  scale_fill_gradient2(low = "blue", high = "red", na.value = "black", name = "") +
  geom_rect(mapping = aes(xmin = X1 - 0.5,     xmax = X1 + 0.5,
                          ymin = Signal - 0.5, ymax = Signal + 0.5),
            size = 1, fill = NA, colour = dataMatrix$Representativeness)

标签: rggplot2data-visualizationrastergeom-raster

解决方案


推荐阅读