繁体   English   中英

绘制从两个不同的 data.frames 中选择的两个向量

[英]Plot two vectors selected from two different data.frames

我在 df1 中有一组相关值。 我想选择高于 0.3 的相关值,并分别绘制来自 df2 和 df3 的相应“基因”和“miRNA”的图。 例如,基因“4057”和 miRNA“hsa-miR-10a-5p”的相关性为 0.377,然后我想从 df2 中选择那个基因和从 df3 中选择那个 miRNA 并将这两个向量相互作图。

矩阵具有不同的大小,因此我需要从 df2 和 df3 中获取行名以获取要绘制的基因和 miRNA。

df1(相关值)

df1 <-
structure(c(-0.123527914476431, -0.00191368375009113, 0.206329536015974, 
-0.0709338776700445, -0.115896333017424, -0.125478547128287, 
-0.00931326091711015, 0.0193057941898672, -0.144565138149741, 
-0.0594153240504483), .Dim = c(5L, 2L), .Dimnames = list(c("hsa-let-7a-3p", 
"hsa-let-7a-5p", "hsa-let-7b-3p", "hsa-let-7b-5p", "hsa-let-7c-5p"
), c("9473", "9446")))

df2(基因)

df2 <-
structure(c(4.95596367554674, 4.83602254848161, 4.28774184754794, 
5.42319073450686, 4.99602258870066, 3.84789833077499, 4.40660838665264, 
3.90254998563245, 5.7625184441094, 3.50353293596127, 4.80461918489051, 
3.41880869529729, 5.13990627733018, 5.06752841971704, 2.54781787941398, 
5.32269972247275, 1.72108547809436, 4.23107687831885, 4.38225432253243, 
1.74793463045192), .Dim = 5:4, .Dimnames = list(c("8813", "2519", 
"2729", "4800", "57185"), c("9446", "9450", "9473", "9484")))

df3 (miRNA)

df3 <-
structure(c(5.33977753674163, 16.7094706871338, 4.23758718121094, 
12.6275105554044, 9.04107044295747, -0.685470517077967, 16.7897917316432, 
-4.25347907370252, 13.4032906994389, 12.4040556704001, 2.51260901116279, 
16.0324845504096, 5.50096403268869, 12.0305530420621, 11.8057011378596, 
1.00715758856066, 15.6131178756706, 2.48509953100854, 11.9807372642204, 
7.93896000301356), .Dim = 5:4, .Dimnames = list(c("hsa-let-7a-3p", 
"hsa-let-7a-5p", "hsa-let-7b-3p", "hsa-let-7b-5p", "hsa-let-7c-5p"
), c("9446", "9450", "9473", "9484")))

我完全不确定这是您想要的那种图表,但它确实绘制了彼此相关性大于 0.3 的基因和 miRNA 的载体。

library(ggplot2)

inx <- which(df1 > 0.0, arr.ind = TRUE)
res <- data.frame()
k <- 0L
for(i in 1:nrow(inx)){
  x <- df2[, inx[i, 2]]
  y <- df3[, inx[i, 1]]
  k <- k + 1L
  tmp <- data.frame(vector = k, gene = x, miRNA = y)
  res <- rbind(res, tmp)
}
res$vector <- factor(res$vector)

ggplot(res, aes(gene, miRNA)) +
  geom_point(aes(colour = vector))

在此处输入图片说明

按照 OP 的要求,这里是一个解决方案,每个相关向量有一个图。

ggplot(res, aes(gene, miRNA)) +
  geom_point(aes(colour = vector)) +
  facet_grid(vector ~ ., scales = "free")

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM