簡體   English   中英

如何在 x 軸上制作 R plot 的 SNP,在 y 軸上制作信念?

[英]How to make an R plot of SNPs on the x-axis and beliefs on the y-axis?

如何在 x 軸上制作 R plot 的 SNP,在 y 軸上制作信念? 也許抖動 plot? 還是交互式 plotly? 如果我使用 Python,hash 表將是最簡單的數據結構。 但是貌似R不太容易支持這樣的數據結構?

在此處輸入圖像描述

dput結果:

> dput(head(bel_bpa_df))
structure(list(SNPs = list(c("rs12117661 ", " rs11588151 ", " rs34232196 ", 
" rs4500361 ", " rs4927191 ", " rs200159426 ", " rs187607506 ", 
" rs12748266 ", " rs11206510 ", " rs34900073 ", " rs55958021 ", 
" rs12404395 ", " rs613855 ", " rs624612 ", " rs625619 ", " rs479910"
), c("rs12117661 ", " rs11588151 ", " rs34232196 ", " rs3976734 ", 
" rs4500361 ", " rs4927191 ", " rs200159426 ", " rs187607506 ", 
" rs12748266 ", " rs11206510 ", " rs34900073 ", " rs2495491 ", 
" rs2479415 ", " rs2495489 ", " rs55958021 ", " rs12404395 ", 
" rs2479404 ", " rs2479409 ", " rs613855 ", " rs624612 ", " rs625619 ", 
" rs479910"), c("rs12117661 ", " rs11588151 ", " rs34232196 ", 
" rs4500361 ", " rs4927191 ", " rs200159426 ", " rs187607506 ", 
" rs12748266 ", " rs11206510 ", " rs34900073 ", " rs55958021 ", 
" rs12404395 ", " rs11206513 ", " rs7530425 ", " rs11436234 ", 
" rs10888897 ", " rs7543163 ", " rs11206514 ", " rs11206515 ", 
" rs10888898 ", " rs613855 ", " rs624612 ", " rs625619 ", " rs479910"
), c("rs12117661 ", " rs11588151 ", " rs34232196 ", " rs4500361 ", 
" rs4927191 ", " rs200159426 ", " rs187607506 ", " rs12748266 ", 
" rs11206510 ", " rs34900073 ", " rs55958021 ", " rs12404395 ", 
" rs613855 ", " rs624612 ", " rs625619 ", " rs479910 ", " rs568052 ", 
" rs483462 ", " rs615563 ", " rs630431 ", " rs662145 ", " 1:55539780_TA_T ", 
" rs487230 ", " rs683880 ", " rs555687 ", " rs548852"), c("rs12117661 ", 
" rs11588151 ", " rs34232196 ", " rs4500361 ", " rs4927191 ", 
" rs200159426 ", " rs187607506 ", " rs12748266 ", " rs11206510 ", 
" rs34900073 ", " rs55958021 ", " rs12404395 ", " rs613855 ", 
" rs624612 ", " rs625619 ", " rs494198 ", " rs7552841 ", " rs639750 ", 
" rs499883 ", " rs521662 ", " rs1165287 ", " rs634272 ", " rs553741 ", 
" rs693668 ", " rs471705 ", " rs472495 ", " rs479910"), c("rs17111483 ", 
" rs12117661 ", " rs11588151 ", " rs34232196 ", " rs4500361 ", 
" rs4927191 ", " rs200159426 ", " rs199717562 ", " rs200730299 ", 
" rs187607506 ", " rs60228221 ", " rs57498787 ", " rs12141643 ", 
" rs4609471 ", " rs12748266 ", " rs11206510 ", " rs34900073 ", 
" rs55958021 ", " rs12404395 ", " rs28385708 ", " rs613855 ", 
" rs624612 ", " rs625619 ", " rs479910 ", " rs11206517 ", " rs12067569 ", 
" rs10465832 ", " rs56235208 ", " rs72911441")), Belief = c(0.531441, 
0.59049, 0.59049, 0.59049, 0.59049, 0.59049), Plausibility = c(1, 
1, 1, 1, 1, 1), `Plty Ratio` = c(2.13420294989532, 2.4419428096994, 
2.4419428096994, 2.4419428096994, 2.4419428096994, 2.4419428096994
)), row.names = c(NA, 6L), class = "data.frame")

按照@akrun 的第一個建議bel_bpa_df %>% unnest(SNPs) %>% mutate(SNPs = trimws(SNPs)) %>% ggplot(aes(SNPs, Belief)) + geom_jitter() ,我得到了一個非常密集的 plot。 如果我可以查看 x 軸上的各個 id,那就太好了。 plotly 在這方面會做得更好嗎?

在此處輸入圖像描述

要回答第二個問題,您可以旋轉 x 軸標簽並使用themeguides更改字體大小(您可以調整字體大小),如下所示:

library(dplyr)
library(tidyr)
library(ggplot2)
bel_bpa_df %>% 
  unnest(SNPs) %>% 
  mutate(SNPs = trimws(SNPs)) %>% 
  ggplot(aes(SNPs, Belief)) + 
  geom_jitter() +
  guides(x = guide_axis(angle = 90)) +
  theme(axis.text.x = element_text(size = 3))

創建於 2023-01-06,使用reprex v2.0.2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM