首发于 R语言中文社区
R语言&EXCEL绘制瀑布图

R语言&EXCEL绘制瀑布图

瀑布图是反映在诸多原因和因素下,使得一个状态演变成另一个状态的过程图表,这个过程中我们可以了解哪些是导致该变化结果的主要因素,以及产生影响的强弱,R语言中一共有三个包可以做,它们分别是waterfall,waterfalls基于ggplot2绘图系统,rAmCharts(绘制动态交互瀑布图),在文章的最后介绍如何用EXCEL绘制瀑布图。

一、waterfall包绘制

这个包绘制的是最简单的瀑布图,对图片的属性修改不够灵活,不推荐大家使用只做了解即可

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)


二、waterfalls包

这个包是基于ggplot2编写的,因此ggplot2的所有函数及其扩展包中的函数都可以用来修饰瀑布图,另一个原因是这个包只有一个函数waterfallchart该函数包含了20几个参数基本满足了绘制瀑布图的要求,如果还想进一步对图片进行美化可以参考ggplot2族中的其他函数

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')


三、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

四、使用EXCEL制作
选中除阴影部分的所有列点击插入堆叠柱状图,其中Dummy列的数据公式

=IF(B3<0,SUM($B$2:B3),SUM($B$2:B2)) ;+,-分别为=IF(B6<0,0,B6)


IF(B4>0,0,ABS(B4)) 。

任选一柱把分类间距设置为无


点击所有列的数据标签分别设置,Before/After列勾选类别值和值,并设置分割符为换行符,Dummy系列仅勾选类别名称标签位置设置为在数据标签内,+,-因素的数据标签的数据格式分别设置为[=0]"";+#,###,[=0]"";-#,###其他设置同Before/After.

最后进行一些坐标,网格线,标题,配色等对图表进行修饰,由于操作简单这里就不再写了,最终效果如下图所示


---------------------

作者:EasyCharts

博客专栏: EasyCharts 博客专栏

公众号:EasyCharts

大家也可以加小编微信:tswenqu(备注:知乎),进R语言中文社区 交流群,可以跟各位老师互相交流


官方公众号:R语言中文社区 (ID:R_shequ) 欢迎关注,持续连载。

代做工资流水公司柳州流水单打印临沂自存流水代开兰州代做贷款工资流水包头查银行流水修改孝感工资流水查询九江公司流水样本湖州代办个人工资流水盐城公司流水办理西宁车贷银行流水无锡签证流水代开宜昌银行流水制作株洲自存银行流水淄博代开在职证明沈阳工资流水app截图公司江门企业流水打印报价深圳银行流水修改样本威海流水单样本宁波办理公司流水上饶银行流水账报价镇江个人银行流水打印东莞企业银行流水模板天津薪资流水单代办大连工资流水单打印金华查贷款工资流水扬州代开消费贷流水泉州签证银行流水 模板岳阳打印入职流水株洲打银行流水海口车贷银行流水 代做台州签证工资流水报价香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化