参考。瀑布图是反映在诸多原因和因素下,使得一个状态演变成另一个状态的过程图表,这个过程中我们可以了解哪些是导致该变化结果的主要因素。
因此,瀑布图可以可视化逻辑回归的\(\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)
树结构的信息增益值,可以理解为对分类准确率的贡献,准确率\(\in [0,1]\)。↩