2

R version 3.1.1 (2014-07-10) Platform: i386-w64-mingw32/i386 (32-bit)

私はバープロットに取り組んでいggplot2ます。目的は、データの積み上げ棒グラフとドッジ棒グラフを組み合わせることです。私の問題は、両方のレイヤーを含むか、別々に表示する凡例を含めることです。

データ:

df <- structure(list(year = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 
1L, 2L, 3L, 4L, 5L, 6L, 7L), .Label = c("2008", "2009", "2010", 
"2011", "2012", "2013", "2014"), class = "factor"), product = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("a", 
"b"), class = "factor"), total = c(1663L, 1344L, 1844L, 444L, 
1336L, 897L, 655L, 3433L, 3244L, 2044L, 3344L, 1771L, 1410L, 
726L), partial = c(1663L, 1344L, 1844L, 444L, 949L, 302L, 5L, 
3433L, 3244L, 2044L, 3344L, 1476L, 1158L, 457L)), .Names = c("year", 
"product", "total", "partial"), row.names = c(NA, -14L), class = "data.frame")

計画は、2 つの geom_bar レイヤーをプロットして、覆い焼きと積み重ねを組み合わせることでした。最初の層は総量で、2 番目の層は部分量です。最初のレイヤーのアルファ値を減らして、2 つのレイヤーの違いを確認します。これまでのところ、うまくいきました。

例:

ggplot(df, aes(x = year))+
      geom_bar(aes(y = total, fill = product), alpha= 0.3, stat = "identity", position = "dodge",  width = 0.3)+
      geom_bar(aes(y = partial, fill = product), alpha= 1, stat = "identity", position = "dodge", width = 0.3)

ここに画像の説明を入力

今、伝説は十分ではありません。これは、最初のレイヤーの色を示し、fill = productアルファ値の影響を受けません。

私のアプローチはscale_fill_manual、新しい色の新しいラベルを使用して手動で追加することでしたが、うまくいきませんでした。

私の考え:

ggplot(df, aes(x = year))+
      geom_bar(aes(y = total, fill = product), alpha= 0.3, stat = "identity", position = "dodge",  width = 0.3)+
      geom_bar(aes(y = partial, fill = product), alpha= 1, stat = "identity", position = "dodge", width = 0.3)+
      scale_fill_manual(name = "",
                        values=c("red", "black","blue"),
                        labels=c("a","b","test"))

ここに画像の説明を入力

私の問題について助けてくれてありがとう!

4

1 に答える 1