2017-02-17 10 views
1

私は2つの棒グラフを作成しています。最初は高さが3つの値の合計で、別々の色で表示します。私は次のプロットを作成することができます:積み上げ横並びの棒グラフを組み合わせる

library(reshape) 
library(ggplot2) 
data1 <- data.frame("Year" = c(2011, 2012, 2013, 2014, 2015, 2016), 
         "Item1" = c(47.3, 46.3, 49.9, 50.1, 50.9, 47.2), 
         "Item2" = c(26.9, 58.9, 2.0, 11.5, 11.5, 5.3), 
         "Item3" = c(25.8, 24.9, 24.9, 25.4, 25.3, 25.6)) 
mdata <- melt(data1, id.var = "Year") 
plot(ggplot(mdata, aes(x = Year, y = value, fill = variable)) + 
    geom_bar(stat = "identity")) 

私の2番目のプロットは、その値がバーの高さを決定する単なるバーです。そのプロットを生成するためのコードは次のとおりです。

data2 <- data.frame("Year" = c(2011, 2012, 2013, 2014, 2015, 2016), 
         "Value" = c(85.1, 83.4, 86.9, 87.6, 88.4, 85.6)) 
plot(ggplot(data2, aes(x = Year, y = Value)) + 
    geom_bar(stat = "identity")) 

私は2011など、2012年はグループ化され、グループ化されて、私はどのように把握することはできませんのでことを、同じプロットに並んでこれら二つのバー側を表示したいと思います2番目のプロットを追加します。どんな助け?ありがとう!

+1

明快にするために、年をx軸に沿って見たいと思っています。毎年、2つのバーがあります:3つの値の合計と1つのバー?それが正しい場合は、ここにあるように3つの値を異なる色に分解する必要がありますか、合計を1つの棒として表示するだけで十分ですか? – BLT

+0

@BLTこれを参照してください:http://stackoverflow.com/questions/11604070/issue-with-ggplot2-geom-bar-and-position-dodge-stacked-has-correct-y-values#11620735、 'position = 'dodge'''と' 'stack''の両方を持っていて、やや意味があります。その回答は非常に古いですね、私が知らないものは変わったかもしれません。 – GGamba

+0

@Gガンバよ、基本的に同じ質問です。私の答えは「プロットする前にアイテム#を集めてみてください。 – BLT

答えて

0

フィードバックをいただきありがとうございます。答えに基づいて、アプローチを少し変えて、2番目の棒グラフの代わりに線グラフを使用しました。これは、私が元々望んでいたものと全く同じではない、同じ情報を伝えます。再度、感謝します!

0

グループ化列を追加して、代わりに離散スケールに基づいてプロットすることができます。

data3 <- merge(data1, data2, by = 'Year') 
data3 <- melt(data3, id.var = 'Year') 
data3$gr <- paste0(data3$Year, ifelse(data3$variable == 'Value', '.b', '.a')) 

ggplot(data3, aes(x = gr, y = value, fill = variable)) + 
    geom_col() 

またはdplyrを使用して、あなたがまっすぐ

data1 %>% full_join(data2) %>% 
    gather(Item, value, -Year) %>% 
    mutate(gr = paste0(Year, ifelse(Item == 'Value', '.b', '.a'))) %>% 

    ggplot(aes(x = gr, y = value, fill = Item)) + 
    geom_col() 

を通じてパイプにそれをしたい場合、これはごまかしをプロットの外観を与えると同じでスタックします。 1つの欠点は、Y軸上のラベルが年の代わりにグループ変数を反映していることです。私はこれまで数回これらを変更しようとしましたが、それを理解していませんでした。

enter image description here

関連する問題