首页 > 解决方案 > R中一种情节的推荐

问题描述

我有一个数据,它有 5 列代表不同的方法,这些方法包含通过不同方法捕获多少染色体。列是FACTOR,代表数据分组的类别,TOTAL是染色体的长度,METHOD是捕获该区域的方法,FROMTO表示捕获的片段。

总的想法是绘制染色体总长度的范围,以便查看所有染色体方法之间的重叠。

作为一个例子,我离开这个

数据输入

a <- data.frame(FACTOR = as.factor(c(1,1,1,2,2,3,3,3,3,4)),
                TOTAL = as.numeric(c(100,100,100,90,90,80,80,80,80,70)),
                METHOD = as.factor(c("A","B","C","A","B","A","B","C","A","C")),
                FROM = as.numeric(c(5,10,75,20,25,20,25,30,75,5)),
                TO = as.numeric(c(95,80,100,80,85,70,55,75,80,70)))
   FACTOR TOTAL METHOD FROM  TO
1       1   100      A    5  95
2       1   100      B   10  80
3       1   100      C   75 100
4       2    90      A   20  80
5       2    90      B   25  85
6       3    80      A   20  70
7       3    80      B   25  55
8       3    80      C   30  75
9       3    80      A   75  80
10      4    70      C    5  70

我想完成一个与此类似的图表(它在油漆中,我知道,我很抱歉) X 轴将用于TOTAL列,Y 轴将是FACTOR

不同方法捕获的染色体箱线图

标签: rggplot2boxplot

解决方案


这是一种方法。基本思想是使用geom_linerange粗线(也可以使用geom_segment)将 FROM 和 TO 绘制在 y 轴上,将 FACTOR 绘制在 x 轴上,然后使用coord_flip.

a$FACTOR <- factor(a$FACTOR, levels=c(4,3,2,1))

library(ggplot2)

ggplot(a) +
  geom_linerange(aes(x=FACTOR, ymin=FROM, ymax=TO, colour=METHOD), size=3, position=position_dodge(width=0.5)) +
  coord_flip()

产生:

在此处输入图像描述


推荐阅读