2016-11-09 22 views
2

積み上げ棒グラフでグループのプロット順を変更しようとしています。他の人たちも同様の質問をしました。 herehereしかし、私は仕事に似た何かを得ることができません。積み上げ棒グラフのプロット順序を変更する

ここはおもちゃの例です。私は、いくつかのサイト、それらの緯度、およびそれぞれのマウス、ラット、ウサギ、および犬の数を持つデータフレームを持っています。私はy軸上の緯度とx軸上の動物数で順序付けられたサイトを持つ積み重ね棒グラフを作成したいと思います。動物の棒を特定の順序(例えば、サイズ、最小から最大)でプロットしたいと思います。

私はうまくいくはずのコードを書いていますが、動物のプロット順を指定する私の努力は、プロット自体ではなく、凡例を並べ替えるだけです。

library(ggplot2) 
df <- read.table(header=TRUE, text="site group taxa latitude 
A mouse 2 -20 
           B rat 3 -17 
           C dog 6 -18 
           D rabbit 7 -24 
           A rabbit 2 -20 
           B mouse 5 -17 
           C rabbit 3 -18 
           D dog 2 -24 
           A dog 3 -20 
           B rabbit 4 -17 
           C mouse 3 -18 
           D mouse 2 -24") 

plotOrder <- c("mouse","rat","rabbit","dog") #set the order in which I want to plot the groups 
df$group <- factor(as.character(df$group), levels = plotOrder) #reorders the legend & colour, not plotting order 

plot1 <- 
    ggplot(data = df, 
     aes(x=reorder(site, latitude), y=taxa, fill=group))+ 
    geom_bar(aes(order = group), stat="identity") + 
    coord_flip() 
plot1 

ありがとうございます。

答えて

1

あなたは全体data.frameを注文することによって、これを達成することができます:

plot1 <- 
    ggplot(data = df[order(df$site, df$group),], 
     aes(x=reorder(site, latitude), y=taxa, fill=group))+ 
    geom_bar(stat="identity") + 
    coord_flip() 
plot1 

enter image description here

関連する問題