2017-01-26 6 views
2

geom_segmentを使用して上下の矢印をプロットしようとしています。上向きの矢印と下向きの矢印が必要なデータについては、2で私のデータセットを分割しました。geom_segment arrow direction

両方のプロットでは、矢印が上を向いています。どのようにこれを逆にすることができますか?私は行方不明の変数がありますか?

データセットIは、次のようなルックスを使用しています:負のものは、down-facingを必要としながら、

GENE START END  STRAND 
A  3000000 3000312 + 
B  30- 

正のストランドは、up-facing矢印を必要としています。私はx-axis位置を気にしないので、私はrunifを使用してい

# 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)) 

は、ここに私のコードです。私の主な関心事はy-axisです。その後

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

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) 

私は1 ggplotでポイントをマージしたいので、updown

+0

このヘルプ([geom_spokeの矢印の変化方向] http://stackoverflow.com/questions/39173710/change-をいgeom-spokeの矢印の方向)?次回は、あなたのサンプルを再現性のあるものにすることを忘れないでください。 – Henrik

+0

@Henrik no、なぜなら、このテイクには出発点が>終点であるか、その逆の矢印が散らばっているからです。これは、方向性がこのように定義されていることを意味します。したがって、矢印は自動的に正しい方向を指すように設定されます。私の場合、私は方向を示すことを望んでいません(上、下、左、右)。他に何かを示したい。 – Pavlos

+0

@Henrikもう一度確認してください – Pavlos

答えて

0

ソリューションは、ハックのlilのビットで区別することが重要です。しかし、いつかそれについて考えることが私を取った。矢印をdown-facingの矢印に合わせて開始と停止を逆にするだけです。これに代えて

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)