gpt4 book ai didi

r - ggplot2 和带有负值的堆积条形图

转载 作者:行者123 更新时间:2023-12-03 11:09:16 33 4
gpt4 key购买 nike

给定以下数据集:

   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)

这将返回一个错误:

Warning message: Stacking not well defined when ymin != 0



而不是预期的结果——负值显示在 X 轴下方——它们根本不存在于堆积条形图中。有没有办法生成包含所有正值和负值的图表?

最佳答案

更新 :截至 ggplot2 2.2.0,负值的堆叠是自动处理的,而不必为正值和负值创建单独的层。

如果我明白你在找什么,诀窍是将两个正负数据放在不同的层,并使用 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)

enter image description here

关于r - ggplot2 和带有负值的堆积条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13734368/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com