瀑布圖是反映在諸多緣由和因素下,使得一個狀態演變成另外一個狀態的過程圖表,這個過程當中咱們能夠了解哪些是致使該變化結果的主要因素,以及產生影響的強弱,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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。