首页 > 解决方案 > 用不同颜色填充堆叠/闪避的条

问题描述

我正在尝试构建一个图表,结合堆叠和躲避来比较两个不同 KPI(VOL 和 NV)上几个月的两条业务线。我会有这样的事情:(https://imgur.com/a/IambH09

我会使用 4 种不同的颜色,但即使使用

scale_fill_manual

它只对所有类别使用前两个。你认为有可能吗?否则我不会进一步调整其他细节

谢谢

布鲁诺

这是我坚持的结果: https ://imgur.com/a/5RJMMiN

df=data.frame(
  SOC=rep(c("ENERGIA","ENERGIE"),each=4),
  MESE_RIF=rep(c("2019_01","2019_02")),
  CHURN_TYPE=rep(c("VOL","NV"),each=2),
  CHURN_RATE=rep(c(1.35,1.14,0.23,0.22,1.49,1.54,0.13,0.10)),
  NR_LOST=rep(c(8288,7010,1432,1372,2818,2857,247,186)))

#filling colors
fill <- c("#72A3C9", "#B9DDF1","#F07E27","#FFC786")


#graph
ggplot(df, aes(x = SOC, y = CHURN_RATE, fill = CHURN_TYPE)) + 
geom_bar(position = "stack", stat = "identity") + facet_wrap( ~ MESE_RIF)  + 
geom_text(data=df, aes(label = (df$NR_LOST)), size=4, 
position=position_stack(vjust = 0.5)) + scale_fill_manual(values=fill)

标签: rggplot2stacked-chart

解决方案


您有四种填充颜色,并且fill被映射到CHURN_RATE具有两个值的 。

一种方法可能是映射fill到 和 的组合CHURN_RATESOC就像这样。

ggplot(df, aes(x = SOC, y = CHURN_RATE, 
               fill = interaction(CHURN_TYPE, SOC))) + 
...

在此处输入图像描述


推荐阅读