瀑布图是反映在诸多缘由和因素下,使得一个状态演变成另外一个状态的过程图表,这个过程当中咱们能够了解哪些是致使该变化结果的主要因素,以及产生影响的强弱,R语言中一共有三个包能够作,它们分别是waterfall,waterfalls基于ggplot2绘图系统,rAmCharts(绘制动态交互瀑布图),在文章的最后介绍如何用EXCEL绘制瀑布图。微信
1、waterfall包绘制函数
这个包绘制的是最简单的瀑布图,对图片的属性修改不够灵活,不推荐你们使用只作了解便可spa
library(waterfall)
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))
waterfallchart(Item~data,data=mydata)
.net
2、waterfalls包code
这个包是基于ggplot2编写的,所以ggplot2的全部函数及其扩展包中的函数均可以用来修饰瀑布图,另外一个缘由是这个包只有一个函数waterfallchart该函数包含了20几个参数基本知足了绘制瀑布图的要求,若是还想进一步对图片进行美化能够参考ggplot2族中的其余函数orm
library(waterfalls)
library(ggplot2)
library(ggthemes)
waterfall(.data = mydata ,
rect_text_labels = paste(levels(mydata$Item),'\n',mydata$data),
fill_colours = c('darkslateblue','chocolate','chocolate','chartreuse',
'chartreuse','chartreuse','chartreuse','chartreuse'),
calc_total = TRUE, total_rect_color = "darkslateblue",
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)+
theme_map()+
geom_hline(yintercept = 0, colour = 'skyblue')
blog
3、rAmCharts图片
这个包能够作出动态的瀑布图,难点在于数据形式的构造,多出一列符号列get
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 = TRUEit
4、使用EXCEL制做
选中除阴影部分的全部列点击插入堆叠柱状图,其中Dummy列的数据公式
=IF(B3<0,SUM($B$2:B3),SUM($B$2:B2)) ;+,-分别为=IF(B6<0,0,B6)
IF(B4>0,0,ABS(B4)) 。
任选一柱把分类间距设置为无
点击Dummy设置为无填充色
点击全部列的数据标签分别设置,Before/After列勾选类别值和值,并设置分割符为换行符,Dummy系列仅勾选类别名称标签位置设置为在数据标签内,+,-因素的数据标签的数据格式分别设置为[=0]"";+#,###,[=0]"";-#,###其余设置同Before/After.
最后进行一些坐标,网格线,标题,配色等对图表进行修饰,因为操做简单这里就再也不写了,最终效果以下图所示
参考文献:陈兴荣,Excel图表拒绝平庸,电子工业出版社.
本文转载自公众号:天天都有进步
欢迎关注原做者公众号:
本文分享自微信公众号 - 数据小魔方(datamofang)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。