我在一个文本文件中有多个数字序列,每个序列由数字 1 到 8 组成。序列中的数字用空格分隔,而每个新序列都带有换行符。
数据:可以假设文本文件“Sequences.txt”具有以下 4 个序列(可能有不同的长度):
6 6 3 8 3 2 8 6 1 7 3 7 6 8 2 8 2 6 8 8 1 1 4 3 6 4 3 4 6 7
6 1 8 7 8 1 2 6 8 3 4 3 5 4 2 2 1 1 1 4 5 5 4 5 5 5 7 7 4 4 3 2 8 7 7
4 5 5 7 7 3 7 8 7 8 2 2 8 2 8 1 1 1 7 7 7 4 4 4
1 4 4 1 1 8 8 1 8 1 1 1 1 5 5 6 6 7 3 3 8 2 3 4 3 8 3 4 5 4 5 2 3 5 7
我需要的是使用 R 绘制下图中所示的那种图。这里,每个序列排列成一行,并且序列一个一个地堆叠在另一个下面。
从文献来看,它看起来像小波图,尽管我不确定。
确实可以使用帮助来完成此任务(已经尝试了一些软件包,包括 biwavelet、sowas)。没有在这里展示我的尝试,因为我已经在另一个问题中发布了它。使用 R 4.2.1.
数据中似乎没有太多模式,但您可以按如下方式提取并绘制它:
library(tidyverse)
readLines("Sequences.txt") %>%
strsplit(" ") %>%
lapply(as.numeric) %>%
lapply(\(x) c(x, rep(NA, max(lengths(.)) - length(x)))) %>%
as.data.frame() %>%
setNames(seq_along(.)) %>%
cbind(x = seq(nrow(.))) %>%
pivot_longer(-x, names_to = "y", values_to = "z") %>%
mutate(y = as.numeric(y)) %>%
ggplot(aes(x, y, fill = z)) +
geom_raster() +
scale_fill_distiller(palette = "Spectral", na.value = "white")