使用R語(yǔ)言創(chuàng)建自定義桑基圖Sankey圖
原文鏈接:http://tecdat.cn/?p=9101
?
本文將描述如何在R中創(chuàng)建自定義Sankey圖。我將首先解釋Sankey圖的基礎(chǔ),然后提供自動(dòng)創(chuàng)建和手動(dòng)控制的布局的示例。
Sankey圖的元素
Sankey圖是一種可視化數(shù)據(jù)流的方式。Sankey圖由三組元素組成:??節(jié)點(diǎn),??鏈接和確定其位置的指令。
首先,有節(jié)點(diǎn)。在下面的示例中,方框表示四個(gè)節(jié)點(diǎn)。

這些鏈接具有?與之關(guān)聯(lián)的值,該值由鏈接的厚度表示。在示例中,連接節(jié)點(diǎn)A和節(jié)點(diǎn)B的第一條鏈接的寬度是連接A和C的第二條鏈接的寬度的一半。此外,從B到D的鏈接再次變大,最大的鏈接是從C到D。
?
使用R
nodes = data.frame("name" =
?c("Node A", # Node 0
...
?"Node D"))# Node 3
links = as.data.frame(matrix(c(
?0, 1, 10, # Each row represents a link. The first number
....
?byrow = TRUE, ncol = 3))
names(links) = c("source", "target", "value")
sankeyNetwork(Links = links, Nodes = nodes,
?Source = "source", Target = "target",
?Value = "value", NodeID = "name",
?fontSize= 12, nodeWidth = 30)
此代碼的一些方面要注意:
第1行加載程序包。
第2至6行創(chuàng)建一個(gè)數(shù)據(jù)框。
第7至11行指定鏈接。
最后幾行使用sankeyNetwork函數(shù)。
如果要修改此示例,則只需修改節(jié)點(diǎn)(此示例中的第3至6行)和鏈接(第8至11行)即可。
使用自動(dòng)布局的Sankey圖


?
?
?