这期内容当中小编将会给大家带来有关如何用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)) 。
任选一柱把分类间距设置为无
点击Dummy设置为无填充色
点击所有列的数据标签分别设置,Before/After列勾选类别值和值,并设置分割符为换行符,Dummy系列仅勾选类别名称标签位置设置为在数据标签内,+,-因素的数据标签的数据格式分别设置为[=0]"";+#,###,[=0]"";-#,###其他设置同Before/After.
最后进行一些坐标,网格线,标题,配色等对图表进行修饰,由于操作简单这里就不再写了,最终效果如下图所示
上述就是小编为大家分享的如何用R语言&EXCEL绘制瀑布图了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。