簡體   English   中英

使用R繪制箱線圖

[英]Plotting a boxplot using R

我正在嘗試從以下類型的制表符分隔文件“ New.txt” 使用R腳本創建boxplot ,其中行數和列數將是可變的

Chr Start   End Name    18NGS31 18MPD168    18NGS21 18NGS29 18NGS33 18NGS38
chr9    1234    1234    ABL1    1431    1   1112    1082    1809    1647
chr9    2345    2345    ASXL1   3885    37  3578    1974    2921    3559
chr9    3456    3456    ETV6    3235    188 2911    1578    2344    2673
chr9    4567    4567    MYD88   3198    187 2860    1547    2289    2621

跳過前四列后,使用以下命令從R的第5列在R中創建箱形圖

file <- "new.txt"
x=read.table(file,skip=1)
boxplot(x$V5,x$V6,x$V7,x$V9,x$V10,x$V11,col=rainbow(54),xlab="abc",ylab="Coverage",main="Coverage Metrics")

我正在遵循箱形圖

[![R ploy] [1]] [1]

我要修改此命令,以便可以合並制表符分隔文件中將出現的任意數量的列,並按照其列頭標記每個箱形圖

我建議從寬變到長。

這是使用ggplot2的最小示例

# Sample data
df <- data.frame(id = paste0("id", 1:100), matrix(rnorm(1000), ncol = 10))

library(dplyr)
library(tidyr)
library(ggplot2)
df %>%
    gather(key, value, -id) %>%
    mutate(key = factor(key, levels = paste0("X", 1:10))) %>%
    ggplot(aes(x = key, y = value)) +
    geom_boxplot()

在此處輸入圖片說明

說明:從寬到長整形將列名存儲在新的列key並將其值存儲在value 然后我們可以簡單地將key映射到x 這適用於任意數量的列。


更新

使用樣本數據

df <- read.table(text =
    "Chr Start   End Name    18NGS31 18MPD168    18NGS21 18NGS29 18NGS33 18NGS38
chr9    1234    1234    ABL1    1431    1   1112    1082    1809    1647
chr9    2345    2345    ASXL1   3885    37  3578    1974    2921    3559
chr9    3456    3456    ETV6    3235    188 2911    1578    2344    2673
chr9    4567    4567    MYD88   3198    187 2860    1547    2289    2621", header = T)

df %>%
    gather(key, value, -Chr, -Start, -End, -Name) %>%
    ggplot(aes(x = key, y = value, fill = key)) +
    geom_boxplot()

在此處輸入圖片說明

暫無
暫無

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

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