轉(zhuǎn)自? ?R珊ィ基圖 - wenyusuran的專欄 - CSDN博客 https://blog.csdn.net/wenyusuran/article/details/80674577
桑基圖(Sankey diagram),即砂浜基能量分流圖,也叫杀套牵基能量平衡圖懦胞。它是一種特定類型的流程圖,圖中延伸的分支的寬度對(duì)應(yīng)數(shù)據(jù)流量的大小脊串,通常應(yīng)用于能源辫呻、材料成分、金融等數(shù)據(jù)的可視化分析琼锋。因1898年Matthew Henry Phineas Riall Sankey繪制的“蒸汽機(jī)的能源效率圖”而聞名放闺,此后便以其名字命名為“桑基圖”缕坎。刹勒欤基圖最明顯的特征就是,始末端的分支寬度總和相等谜叹,即所有主支寬度的總和應(yīng)與所有分出去的分支寬度的總和相等匾寝,保持能量的平衡。
????制作工具就有:JS庫(kù)(D3叉谜、Ecgarts旗吁、highlight)、R停局、Python、PowerBI、Tableau董栽、BDP個(gè)人版码倦。
????在R里,有三個(gè)包可以繪制啥迹基圖:
????library(riverplot)????? ??
??? library("d3Network")
??? library(Networkd3)
??? 然而第一個(gè)包特色過(guò)于鮮明袁稽,第二個(gè)包對(duì)中文不太友好,所以個(gè)人偏向于第三個(gè)包擒抛。
---------------------
作者:文宇肅然
來(lái)源:CSDN
原文:https://blog.csdn.net/wenyusuran/article/details/80674577
版權(quán)聲明:本文為博主原創(chuàng)文章推汽,轉(zhuǎn)載請(qǐng)附上博文鏈接!
library(networkD3)
setwd('D:/rscript/')
#a=read.csv("m.csv")#a為合并之后的數(shù)據(jù)
a? <- read.csv('1.csv',header=TRUE,fileEncoding='utf-8')
a$s? =? as.character(a$s) #? 導(dǎo)入數(shù)據(jù)的起點(diǎn)終點(diǎn)是factor類型歧沪,需要將其轉(zhuǎn)為chr歹撒,否則之后unique的是因子水平,不能進(jìn)行合并诊胞。
a$t? =? as.character(a$t)
Sankeylinks<-a
Sankeynodes<-data.frame(name=unique(c(Sankeylinks$s,Sankeylinks$t)))?
Sankeynodes$index<-0:(nrow(Sankeynodes)? -? 1)
Sankeylinks<-merge(Sankeylinks,Sankeynodes,by.x="s",by.y="name")
Sankeylinks<-merge(Sankeylinks,Sankeynodes,by.x="t",by.y="name")
Sankeydata<-Sankeylinks[,c(4,5,3)];
names(Sankeydata)<-c("Source","Target","Value")
Sankeyname<-Sankeynodes[,1,drop=FALSE]
sankeyNetwork(Links=Sankeydata,Nodes=Sankeyname,? Source? ="Source",
? ? ? ? ? ? ? Target? =? "Target",? Value? =? "Value",? NodeID? =? "name",
? ? ? ? ? ? ? fontSize? =? 12,? nodeWidth? =? 30)