R geom_段箭头方向

R geom_段箭头方向,r,ggplot2,R,Ggplot2,我正在尝试使用geom\u段绘制一些上下箭头。我把我的数据集分成了两部分,一部分是需要向上箭头的数据,另一部分是需要向下箭头的数据 但在两幅图上,箭头都朝上。如何扭转这种局面?有没有我遗漏的变量 我使用的数据集如下所示: GENE START END STRAND A 3000000 3000312 + B 3001233 3090123 - 正股需要一个朝上的箭头,而负股需要一个朝下的 这是我的密码: # split the dat

我正在尝试使用
geom\u段
绘制一些上下箭头。我把我的数据集分成了两部分,一部分是需要向上箭头的数据,另一部分是需要向下箭头的数据

但在两幅图上,箭头都朝上。如何扭转这种局面?有没有我遗漏的变量

我使用的数据集如下所示:

GENE   START    END        STRAND
A      3000000  3000312    +
B      3001233  3090123    -
正股需要一个
朝上的
箭头,而负股需要一个
朝下的

这是我的密码:

# split the dataset in '+' and '-'
up.arrows <- genes.data[which(genes.data$STRAND=='+'),]
up.arrows.x <- runif(length(up.arrows$START), min = 0, max = length(up.arrows))

down.arrows <- genes.data[which(genes.data$STRAND=='-'),]
down.arrows.x <- runif(length(down.arrows$START), min = 0, max = length(down.arrows))

在此之后,我想将点合并到1 ggplot中,因此区分
向上
向下
是很重要的。解决方案有点麻烦。但是我花了一些时间去思考。只需反转
下向
箭头的启动和停止

与此相反:

ggplot(down.arrows, aes(down.arrows.x, down.arrows$START)) +
    geom_segment(aes(xend=down.arrows.x, yend=down.arrows$STOP), 
                 arrow = arrow(length = unit(0.1, "cm")),
                 colour = 'green4') + 
    geom_text_repel(size = 3,
                    aes(label = down.arrows$GENE),
                    color = 'black',
                    segment.color = 'black') +
    theme_classic(base_size = 16)
这样做:

ggplot(down.arrows, aes(down.arrows.x, down.arrows$STOP)) +   # This is all it took
    geom_segment(aes(xend=down.arrows.x, yend=down.arrows$START), # and this
                 arrow = arrow(length = unit(0.1, "cm")),
                 colour = 'green4') + 
    geom_text_repel(size = 3,
                    aes(label = down.arrows$GENE),
                    color = 'black',
                    segment.color = 'black') +
    theme_classic(base_size = 16)

这有用吗?下一次,请记住让你的例子重现。@Henrik不,因为这个例子有分散的箭头,它们的起点是>终点,反之亦然。这意味着方向性是这样定义的。因此,箭头会自动设置为指向正确的方向。在我的例子中,我不想指明方向(向上、向下、向左、向右)。“我想指出其他的东西。”亨里克再次检查please@hENRIK我只是达姆。我所要做的就是,把向下箭头的起始坐标和结束坐标颠倒过来。。。
ggplot(down.arrows, aes(down.arrows.x, down.arrows$STOP)) +   # This is all it took
    geom_segment(aes(xend=down.arrows.x, yend=down.arrows$START), # and this
                 arrow = arrow(length = unit(0.1, "cm")),
                 colour = 'green4') + 
    geom_text_repel(size = 3,
                    aes(label = down.arrows$GENE),
                    color = 'black',
                    segment.color = 'black') +
    theme_classic(base_size = 16)