Я работаю с данными, которые представляют n сигналов и их значения в m различных моментов времени (m ~ 1500, n ~ 50). Я придумал алгоритм, чтобы проверить, какие значения являются репрезентативными для каждого сигнала, а какие нет, поэтому я получаю n сигналов и m значений True / False, которые говорят мне, является ли значение репрезентативным или нет. Я также знаю, что значения True / False сгруппированы довольно хорошо, что означает, что если я возьму два близких значения, вероятность того, что они одинаковы, намного выше, чем то, что они различны. Я работаю в R.
Я хочу визуализировать результат этого алгоритма вывода. Чтобы сделать это, я пытаюсь создать растровый график, на котором каждая точка заполнена значением сигнала, а каждая группа значений True / False имеет границу, которая видна. Как и на рисунке ниже, но немного по-другому.
Я также открыт для предложений других способов визуализации этих данных.
У меня есть одна матрица n * m, которая дает мне данные для построения растрового графика, и другая матрица n * m (из значений True / False), которая сообщает мне, какие точки являются хорошими / плохими.
КодНиже приведен наиболее близкий к ответу ответ, но внутри группы по-прежнему есть граница, которая не подходит мне.
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)