Google visualization 在Sankey图表中显示总值

Google visualization 在Sankey图表中显示总值,google-visualization,sankey-diagram,Google Visualization,Sankey Diagram,是否可以在sankey图表中显示总计 例如,小提琴的吼声显示水果>位置。我想知道有多少水果是喜欢的地方,有多少水果是联系在一起的。比如: Mango (3) Apple (2) Pineapple (1) 这三个位置都链接到位置A,因此位置A应为: (7) Place A (1更多是因为葡萄) 更新:默认情况下看起来像是v42增加的权重。如果使用d3.js sankey,它将自动求和这些值,并按照此示例显示在工具提示中…看看这个 代码 data1=[ ['Apple','Place A

是否可以在sankey图表中显示总计

例如,小提琴的吼声显示水果>位置。我想知道有多少水果是喜欢的地方,有多少水果是联系在一起的。比如:

Mango (3)
Apple (2)
Pineapple (1)
这三个位置都链接到位置A,因此位置A应为:

(7) Place A
(1更多是因为葡萄)


更新:默认情况下看起来像是v42增加的权重。

如果使用d3.js sankey,它将自动求和这些值,并按照此示例显示在工具提示中…

看看这个

代码

data1=[
['Apple','Place A',1],
['Apple','Place A',1],
['Grape','Place A',1],
['Grape','Place B',2],
[‘菠萝’、‘地点A’、1],
['草莓','Place B',4],
['Mango','Place A',3]
];
var sourceTotals={};
对于(变量i=0;i
这解决了当您使用多级sankey图表时接受答案的问题

请参阅原始答案以计算“sourceTotals”和“destTotals”

假设我有一些arr“图表”和多级sankey图表数据

this.chart={
键入:“Sankey”,
标题:“”,
数据:[
['美国','墨西哥',15],
[‘美国’、‘巴西’、16],
['南美洲','墨西哥',4],
['南美洲','巴西',4],
[“牙买加”、“墨西哥”,18],
[‘南非’、‘巴西’、2],
[‘英格兰’、‘巴西’、9],
[‘英格兰’、‘墨西哥’、9],
['墨西哥','日本',4],
['墨西哥','北极',4],
[‘中国’、‘丹麦’、5],
[‘中国’、‘加拿大’、7],
['墨西哥','中国',10],
],
}
首先删除sourceTotals对象中显示的目标键

for(destTotals中的常量键){
if(destTotals.hasOwnProperty(键)){
if(sourceTotals.hasOwnProperty(键)){
删除sourceTotals[键];
}
}
}
isKeyInObject(查询,对象){
for(对象中的常量键){
if(object.hasOwnProperty(查询)){
返回true;
}
}
返回false;
}
this.chart.data.forEach((d)=>{
//检查d[0]键是否在源总计中
if(此.isKeyInObject(d[0],sourceTotals)){
d[0]=d[0]+'('+sourceTotals[d[0]]+');
}
//dest totals中存在对d[1]键的检查
if(此.isKeyInObject(d[1],destTotals)){
d[1]='('+destotals[d[1]]+')'+d[1];
}
//在原始arr中处理源索引中的目标键
//检查destTotals对象中原始图表数据位置0中的键是否可用
//将其名称更改为destTotals中的name键
if(this.isKeyInObject(d[0],destTotals)){
console.log('POS_ZERO_IN_DEST',d[0]);
d[0]='('+d[0]]+')'+d[0];
}
});

感谢您花时间对此进行研究。这会改变矩阵的标签,也会改变数据的呈现方式。如果有多个步骤相互连接,则不是一个好的解决方案
data1 = [
              ['Apple', 'Place A', 1],
              ['Apple', 'Place A', 1],
              ['Grape', 'Place A', 1],
              ['Grape', 'Place B', 2],
              ['Pineapple', 'Place A', 1],
              ['Strawberry', 'Place B', 4],
              ['Mango', 'Place A', 3]
];

var sourceTotals = {};

for (var i = 0; i < data1.length; i++) {
    var item = data1[i],
        key = item[0];
    if (sourceTotals.hasOwnProperty(key)) {
        sourceTotals[key] += item[2];
    }
    else {
        sourceTotals[key] = item[2];
    }
}

console.log(sourceTotals);

var destTotals = {};

for (var i = 0; i < data1.length; i++) {
    var item = data1[i],
        key = item[1];
    if (destTotals.hasOwnProperty(key)) {
        destTotals[key] += item[2];
    }
    else {
        destTotals[key] = item[2];
    }
}

console.log(destTotals);

data1.forEach( function(d) {
    d[0] = d[0] + " (" + sourceTotals[d[0]] + ")";
    d[1] = "(" + destTotals[d[1]] + ") " + d[1];
})