计算 D3 数组的和积最大值
Calculate Max of Sum Product of D3 array
我正在读取一个csv文件,需要使用D3.js或普通JavaScript从这些数据中计算两个数字:
这也许可以一步完成,但为了解释的目的,我已经分解了它:
读入数据后,我需要遍历标记为"一"到"十"的每一列(此数据的长度未知,因此可能会达到十二或二十),
。每次将"乘数"之后的每一列乘以称为"乘数"的变量(在数据中,我给它任意值 1.5、1、0,5,以使阅读在视觉上更清晰)。
这给出了一个新的数字网格,必须从中计算每个新数字的最大分数和最低分数,每个ID从1到n。因此,每个 ID 都有一个最大值和最小值。 我需要知道作为变量返回的整个数据中这些新分数的最大值和最小值。
数据读入:
d3.csv("data.csv", function(csv) {
var mydata = bars
.selectAll("rect")
.data(csv)
.enter()
};
示例数据显示为:
ID,总计,多个,一,二,三,四,五,六,七,八,九,十1,16500,1.5,0.362,0.37,0.1,0.101,0.035,0.362,0.37,0.1,0.101,0.0352,61000,1,0.426,0.382,0.115,0.084,0.053,0.426,0.382,0.115,0.084,0.0533,48700,1.5,0.156,0.531,0.195,0.399,0.14,0.156,0.149,0.106,0.399,0.144,33000,0.5,0.462,0.409,0.149,0.106,0.149,0.106,0.085,0.1,0.106,0.0515,8000,0.5,0.327,0.316,0.085,0.1,0.085,0.1,0.057,0.245,0.1,0.0576,12760,1,0.149,0.195,0.057,0.245,0.057,0.245,0.119,0.114,0.245,0.08
此原始数据无法替换,因为我稍后会引用它。
因此,从此数据中,遍历所有列,并从整个数据中获取每个列的最大值和最小值---最小值为 0.003535,最大值为 3.8875575
。我需要该函数返回 var min 和 var max 以供下一次计算。
希望有人能帮忙!
数据加载为文本,然后使用d3.csv.parseRows
将CSV解析为数组数组。所以只拿切片,忽略前 3 列。
d3.text('data.csv', function(text)
{
var rows = d3.csv.parseRows(text, function(row, index)
{
// skip header, coerce to Number values
if(index > 0)
{
return row.map(Number);
}
});
var extent = rows.reduce(function(result, row)
{
return d3.extent(result.concat(row.slice(3).map(function(value)
{
return value * row[2];
})));
}, [NaN, NaN]);
var min = extent[0];
var max = extent[1];
});
另一种方式,如果对象数组的结构更方便以后绘制,则可以执行以下操作。
var nonMeasureColumns = {'ID': 0, 'total': 0, 'multiplier': 0};
d3.csv('data.csv')
.row(function(row)
{
for(var key in row)
{
row[key] = Number(row[key]);
}
return row;
})
.get(function(error, rows)
{
var extent = rows.reduce(function(result, row)
{
return d3.extent(result.concat(d3.map(row).entries()
.filter(function(entry)
{
return !(entry.key in nonMeasureColumns);
})
.map(function(entry)
{
return entry.value * row['multiplier'];
})
));
}, [NaN, NaN]);
var min = extent[0];
var max = extent[1];
});
- 在Javascript数组中查找绝对最大值
- Html5输入属性的默认值,如最小值、最大值、大小等
- 按最大值获取数组索引
- 识别滑块范围的最小值和最大值
- 如何在最大值之前的某个点停止范围滑块
- 访问Highcharts系列的最小/最大值:afterSetExtremes不会激发
- 如何在拖动后获得图表的最小值和最大值放大高图表
- 从D3中的JSON中获取最大值
- d3.js nvd3.js--获取y轴最小/最大值
- D3 隐藏图表区的溢出,当 Y 轴具有最小值和最大值时
- 计算 D3 数组的和积最大值
- 根据 d3.js 中的数据集最小值和最大值设置轴范围
- 如何在Rickshaw/D3中设置x轴的最小值/最大值
- d3.最大值未定义
- 如何从对象数组中获得最大值,以便在d3.scale.linear().domain()中使用
- D3饼-设置最大值
- d3.tsv找到最大值
- 使用D3.JS查找数组的最小值和最大值,而不是普通的Javascript
- D3在二维对象数组中访问最大值-刷Y轴
- d3.Max不返回CSV文件中的最大值