次のデータセットがあるとします。
Division Year OperatingIncome
1 A 2012 11460
2 B 2012 7431
3 C 2012 -8121
4 D 2012 15719
5 E 2012 364
6 A 2011 12211
7 B 2011 6290
8 C 2011 -2657
9 D 2011 14657
10 E 2011 1257
11 A 2010 12895
12 B 2010 5381
13 C 2010 -2408
14 D 2010 11849
15 E 2010 517
負の値を含むggplot2で積み上げ棒グラフを完了するにはどうすればよいですか?これが私が使っている基本的なチャートシーケンスです:
ggplot(income_m, aes(x=Year, y=OperatingIncome, fill=Division)) + geom_bar() +
+ scale_fill_brewer(type = "seq", palette = 1)
これはエラーを返します:
警告メッセージ:ymin!= 0の場合、スタックが適切に定義されていません
そして、期待される結果の代わりに-負の値がX軸の下に表示されます-それらは単に積み上げ棒グラフに存在しません。正と負の両方のすべての値を考慮してチャートを作成する方法はありますか?
pdate:ggplot2 2.2.0以降、負の値のスタックは自動的に処理されるため、正の値と負の値に別々のレイヤーを作成する必要はありません。
あなたが探しているものを理解している場合、秘訣は2つのポジティブデータとネガティブデータを別々のレイヤーに配置し、stat = "identity"
を使用することです。
dat <- read.table(text = " Division Year OperatingIncome
1 A 2012 11460
2 B 2012 7431
3 C 2012 -8121
4 D 2012 15719
5 E 2012 364
6 A 2011 12211
7 B 2011 6290
8 C 2011 -2657
9 D 2011 14657
10 E 2011 1257
11 A 2010 12895
12 B 2010 5381
13 C 2010 -2408
14 D 2010 11849
15 E 2010 517",header = TRUE,sep = "",row.names = 1)
dat1 <- subset(dat,OperatingIncome >= 0)
dat2 <- subset(dat,OperatingIncome < 0)
ggplot() +
geom_bar(data = dat1, aes(x=Year, y=OperatingIncome, fill=Division),stat = "identity") +
geom_bar(data = dat2, aes(x=Year, y=OperatingIncome, fill=Division),stat = "identity") +
scale_fill_brewer(type = "seq", palette = 1)