1 min read

瀑布图 waterfall 使用技巧

参考。瀑布图是反映在诸多原因和因素下,使得一个状态演变成另一个状态的过程图表,这个过程中我们可以了解哪些是导致该变化结果的主要因素。

因此,瀑布图可以可视化逻辑回归的\(\beta\)和树模型的信息增益1

waterfalls

waterfalls包, waterfallchart该函数包含了20几个参数基本满足了绘制瀑布图的要求,如果还想进一步对图片进行美化可以参考ggplot2族中的其他函数。

mydata=data.frame(
  Item=as.factor(c('Before','Factor A','Factor B','Factor C','Factor D',
    'Factor E','Factor F','Factor G')),
  data=c(325,-32,-105,38,86,97,232,389))
# 可以理解为回归的beta系数。
library(waterfalls)
library(ggplot2)
library(ggthemes)
waterfall(.data = mydata , 
    rect_text_labels = paste(levels(mydata$Item),'\n',mydata$data),
    # DIY名字。
    fill_colours = c('darkslateblue','chocolate','chocolate','chartreuse',
    'chartreuse','chartreuse','chartreuse','chartreuse'),
    # 这样图片的颜色可以改变,这里可以像股票一样,prem/disc用不同颜色表示。
    calc_total = TRUE, 
    total_rect_color = "darkslateblue",
    # total_*是新的一列
    total_rect_text = paste('After','\n',sum(mydata$data)),
    total_rect_text_color = "black",
    total_axis_text = "After",
    rect_width = 0.9,
    draw_axis.x = "behind",
    rect_border = "white",
      fill_by_sign = FALSE) +
labs(
    x = "影响因素的名称",
    y = "影响因素的大小",
    subtitle = "这个包可以DIY影响的顺序、颜色、标签等。",
    title = "瀑布图举例",
    caption = "数据来源: https://mp.weixin.qq.com/s/VbcY45Yc3TVrkd3chQz1OQ"
) +
theme_map() +
theme(text=element_text(family="STKaiti")) +
geom_hline(yintercept = 0, colour = 'skyblue')

rAmCharts

绘制动态交互瀑布图

library(rAmCharts)
mydata=data.frame(label=c('Before','Factor A','Factor B','Factor C','Factor D',
    'Factor E','Factor F','Factor G','After'),
    value=c(325,32,105,38,86,97,232,389,1030),
         operation=c('total','minus','minus','plus','plus','plus','plus','plus','total'))
amWaterfall(data = mydata, show_values = TRUE)

  1. 树结构的信息增益值,可以理解为对分类准确率的贡献,准确率\(\in [0,1]\)