Plotly堆叠条形图绘制异常求助:负值未显示且数据坍塌
解决Plotly堆叠条形图中负值不显示的问题
你的问题出在**barmode='stack'的默认行为**:当数据包含正负混合值时,plotly会将同一x类别下的所有y值直接累加,导致正值和负值相互抵消,最终部分数据(尤其是负值序列)看起来“消失”了。
修复方案
使用barmode='relative'替代stack,这个模式会分别堆叠正值和负值,避免正负抵消,同时保留堆叠条形图的视觉效果:
plotly::plot_ly(df, x=~TimePeriod, y=~round(DataValue_per_GDP*100,2), color=~Sectors, type = "bar") %>% layout(xaxis = list(title = ""), yaxis = list(title = "(% of GDP)"), barmode = 'relative')
补充说明
如果你的需求是严格的“堆叠”(即所有条形从同一基线开始),那需要先对数据做预处理:将正值和负值的Sectors分开,分别绘制两组堆叠条形图,再调整布局对齐。但relative模式是处理正负混合堆叠的最简便方式,能完美呈现所有正负序列的占比情况。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

