瀑布图是反映在诸多原因和因素下,使得一个状态演变成另一个状态的过程图表,这个过程中我们可以了解哪些是导致该变化结果的主要因素,以及产生影响的强弱,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.

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

转载请保留以下内容:

本文来源自天善社区EasyCharts的博客,EasyCharts公众号。

原文地址:https://ask.hellobi.com/blog/EasyCharts/6306 。

R语言EXCEL绘制瀑布图相关推荐

  1. r语言legend_Waterfall plot 瀑布图(R语言)

    使用场景: 瀑布图通常用于肿瘤学相关研究,以图形方式表示每个受试者/样本对治疗的定量反应.在典型的瀑布图中,x轴用作响应变量的基线值.对于每个受试者/样本,从基线沿正向或负向绘制竖线,以描绘受试者/样 ...

  2. R语言如何绘制韦恩图(6)

    如何绘制韦恩图 1.什么是韦恩图? ​ 维恩图用于展示在不同的事物群组(集合)之间的数学或逻辑联系,尤其适合用来表示集合(或)类之间的"大致关系",它也常常被用来帮助推导(或理解推 ...

  3. R语言如何绘制雷达图(32)

    1.什么是雷达图? ​ 雷达图是以从同一点开始的轴上表示的三个或更多个变量的二维图表的形式显示多变量数据的图形方法.轴的相对位置和角度通常是无信息的. 雷达图也称为网络图,蜘蛛图,星图,蜘蛛网图,不规 ...

  4. R语言如何绘制小提琴图(10)

    1.什么是小提琴图? 小提琴图是箱线图的变种,展示了任意位置的密度,通过小提琴图可以知道哪些位置的密度较高. 外部形状即为核密度估计(在概率论中用来估计未知的密度函数,属于非参数检验方法之一). 本文 ...

  5. R语言如何绘制桑葚图(28)

    1.什么是桑葚图? 桑基图(Sankey Diagram),即桑基能量分流图,也叫桑基能量平衡图.它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小. 桑基图主要由边.流量和节点组成,其 ...

  6. R语言如何绘制棒棒糖图(22)

    1.什么是棒棒糖图? 棒棒糖图,顾名思义,由点棍组成,形似棒棒糖. 棒棒糖图(lollipop chart):棒棒糖图传达了与柱形图或者条形图相同的信息,只是将矩形转变成线条,这样可减少展示空间,重点 ...

  7. R语言如何绘制PCA图(四)

    1.什么是PCA? 人眼一般能感知的空间为二维和三维.高维数据可视化的重要目标就是将高维数据呈现于二维或三维空间中.高维数据变换就是使用降维度的方法,使用线性或非线性变换把高维数据投影到低维空间,去掉 ...

  8. 初入R语言,绘制heatmap图

    1.安装R和RStudio,这个按照教程来就行 2.安装R包 install.packages("xlsx") #通过excel导入数据 #第一行为各种参数 #每一列为不同样本,第 ...

  9. R语言ggplot绘制鸡冠花图(南丁格尔玫瑰图)

    南丁格尔玫瑰图也就是鸡冠花图,一种极坐标的​柱状图.图形的大小跟变量分组的数值呈正比.从极坐标延伸出来的每一环可以当做标尺来使用,用来表示分段的大小并代表数值的高低. 首先绘制柱状图 bar<- ...

最新文章

  1. [译]从零开始成为数据科学家的9个步骤
  2. C++_泛型编程与标准库(二)
  3. AI 系统可帮助医生发现脑动脉瘤
  4. [转] SAAS, PAAS, IAAS
  5. Linux设备模型(热插拔、mdev 与 firmware)
  6. 【xinfanqie】五方面快速解决Win8蓝屏问题
  7. filezilla 定时上传_FileZilla Server安装教程 - FtpCopy数据自动备份软件(FTP定时备份)|FTP自动下载|FTP自动上传|FTP自动备份...
  8. 图像处理:给验证码图片做降噪处理及数据清洗
  9. robust off matlab,matlab_robust LM test 求指点!(空间计量)
  10. datagrid如何获取一行数据中的某个字段值_或许是全网最全面关于数据库面试题...
  11. [转载]更改XP默认字体为微软雅黑
  12. RAID 6 vs. RAID 10
  13. 慎用mutableCopy
  14. Multisim14 安装出错情况说明,以及解决办法
  15. reactjs安装并在脚手架中使用 material-ui/core
  16. 32-SIFI特征点提取(EmguCV学习)
  17. python-for x in range (注意要点、细节)
  18. 计算机里面的硬盘图标怎么会变,win7系统电脑硬盘图标变样的解决方法
  19. MVC下压缩输入的HTML内容
  20. 方舟win10自建服务器,win10电脑玩方舟生存进化常见问题汇总

热门文章

  1. When to use “-er,” “-or,” or “-ar” at the end of a word.
  2. 推荐几个比较好的笔记/博客
  3. springboot报错Failed to configure a DataSource url attribute is not specified and no embedd
  4. 广告欺诈:如何应对数字广告里分羹者?
  5. tensorflow 内存泄漏、内存不足
  6. 上海租房公积金提取/失业金领取
  7. 搭建Docker私有镜像仓库
  8. 计算机没有桌面 怎么创建桌面,在电脑桌面空白处右键没有新建的解决思路
  9. GMQ让优质区块链项目在熊市里更好地布局和发展
  10. 【数据库复习】SQL