桑基图
桑基图(Sankey diagram)是一种特定类型的流程图,用于显示流的分配和方向。它通常用来表示能量、物质或数据等在不同阶段之间的流动情况。桑基图的特点是通过宽度不同的箭头或流线来表示流量的大小:箭头越宽,代表的流量越大。这种图表非常适合用来展示从一个环节到另一个环节的能量损耗、成本分布或者信息传递等情况。
桑基图的关键组成部分包括:
节点(Nodes):表示系统的各个部分或状态。
链接(Links):表示从一个节点流向另一个节点的流。
流量(Flows):每个链接上都标有具体的流量值,反映流的数量。
桑基图广泛应用于多个领域,如能源管理、经济学、环境科学以及网站分析等。它们能够清晰地展示出系统中资源是如何被利用和转化的过程,对于理解复杂的系统运作机制非常有帮助。
案例:
Li等人(2024)利用桑基图展示了塔里木河流域2000-2020年间土地利用类型的变化
Google Charts制作桑基图
Google Charts 是一个由 Google 提供的免费在线工具,它允许用户在网页上创建各种类型的图表和图形。这些图表基于 HTML5 和 SVG 技术,可以在多种浏览器和设备上运行,无需额外安装插件。Google Charts 提供了广泛的图表类型,包括但不限于柱状图、饼图、线图、散点图以及更复杂的图表如桑基图等。
示例代码展示:
```html
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js">
<div id="sankey_multiple" style="width:900px;height:300px;">
<script type="text/javascript">
google.charts.load("current", {packages: ["sankey"]});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
let data =new google.visualization.DataTable();
data.addColumn('string','From');
data.addColumn('string','To');
data.addColumn('number','Weight');
data.addRows([
['Brazil','Portugal',5],
['Brazil','France',1],
['Brazil','Spain',1],
['Brazil','England',1],
['Canada','Portugal',1],
['Canada','France',5],
['Canada','England',1],
['Mexico','Portugal',1],
['Mexico','France',1],
['Mexico','Spain',5],
['Mexico','England',1],
['USA','Portugal',1],
['USA','France',1],
['USA','Spain',1],
['USA','England',5],
['Portugal','Angola',2],
['Portugal','Senegal',1],
['Portugal','Morocco',1],
['Portugal','South Africa',3],
['France','Angola',1],
['France','Senegal',3],
['France','Mali',3],
['France','Morocco',3],
['France','South Africa',1],
['Spain','Senegal',1],
['Spain','Morocco',3],
['Spain','South Africa',1],
['England','Angola',1],
['England','Senegal',1],
['England','Morocco',2],
['England','South Africa',7],
['South Africa','China',5],
['South Africa','India',1],
['South Africa','Japan',3],
['Angola','China',5],
['Angola','India',1],
['Angola','Japan',3],
['Senegal','China',5],
['Senegal','India',1],
['Senegal','Japan',3],
['Mali','China',5],
['Mali','India',1],
['Mali','Japan',3],
['Morocco','China',5],
['Morocco','India',1],
['Morocco','Japan',3]
]);
let colors = ['#a6cee3','#b2df8a','#fb9a99','#fdbf6f',
'#cab2d6','#ffff99','#1f78b4','#33a02c'];
let options = {
height:400,
sankey: {
node: {
colors:colors
},
link: {
colorMode:'gradient',
colors:colors
}
}
};
// Instantiate and draw our chart, passing in some options.
let chart =new google.visualization.Sankey(document.getElementById('sankey_multiple'));
chart.draw(data,options);
}
</html>
```
运行代码就会在浏览器中显示如下结果:
参考文献
Li, D., Zhu, Z., Xu, E. & Zhang, H. Desertification sensitivity and its impacts on land use change in the Tarim Basin, Northwest China.The Science of The Total Environment957, 177601–177601 (2024).