ggplot2堆积条形,负值不与Plotly一起使用

时间:2017-01-20 16:34:41

标签: r ggplot2 plotly

我在前一个帖子ggplot2 and a Stacked Bar Chart with Negative Values中尝试了答案中的代码。

CREATE TABLE #tblBatch(
   BatchId  INT   NOT NULL IDENTITY(1,1) PRIMARY KEY,
   Sname VARCHAR(50) NOT NULL,
   BatchNo as (BatchId-1) / 500 + 1,
   BatchSequenceNo as BatchId % 500
 )

这是我得到的:

enter image description here

如果我运行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) plot <- 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) ggplotly(plot) ,那么它可以正常工作:

enter image description here

如何解决Plotly中的问题?

1 个答案:

答案 0 :(得分:0)

供将来的读者使用

如今,密谋(我正在使用4.8.0)支持具有负值的堆叠条形图。在layout中,您必须设置barmode=relative。此外,您还可以使用问题中发布的ggplotly功能。

plot_ly(dat, y=~OperatingIncome, x=~Year, type='bar', name=~Division, color =~Division, 
        colors='Blues', marker=list(line=list(width=1, color='lightgray'))) %>% 
  layout(barmode = 'relative')

会返回:

enter image description here