【发布时间】:2017-03-31 18:39:29
【问题描述】:
我创建了一个堆积图 我的数据如下所示:
[{probability: 0.12 , impact: 27 },
{probability: 0.22 , impact: 27 },
{probability: 0.44 , impact: 27 },
{probability: 0.12 , impact: 28 },
{probability: 0.31 , impact: 28 },
{probability: 0.41 , impact: 28 },
...]
影响在 X 轴上,概率在 Y 轴上。
同一个X轴上有很多数据。我不得不计算同一个X的Y轴分量之间的差异。
[{"coordinate":0.027215999999999997,"probability":0.027215999999999997,"impact":23,"stackNumber":0},
{"coordinate":0.01701,"probability":0.01701,"impact":24,"stackNumber":0},
{"coordinate":0.055566000000000004,"probability":0.072576,"impact":24,"stackNumber":1},
{"coordinate":0.015119999999999998,"probability":0.015119999999999998,"impact":25,"stackNumber":0},
{"coordinate":0.03024,"probability":0.04536,"impact":25,"stackNumber":1},
{"coordinate":0.00945,"probability":0.00945,"impact":26,"stackNumber":0},
{"coordinate":0.013229999999999999,"probability":0.02268,"impact":26,"stackNumber":1},
{"coordinate":0.017639999999999996,"probability":0.040319999999999995,"impact":26,"stackNumber":2},
{"coordinate":0.014175,"probability":0.014175,"impact":27,"stackNumber":0},
{"coordinate":0.011024999999999997,"probability":0.025199999999999997,"impact":27,"stackNumber":1},
{"coordinate":0.02016,"probability":0.04536,"impact":27,"stackNumber":2},
{"coordinate":0.015120000000000001,"probability":0.06048,"impact":27,"stackNumber":3},
... ]
对于这些数据,我构造了一个维度
this.demansion = crossData.dimension(function(d) {
return d.impact
});
和 n 组
for(let i = 0; i<=this.maxIndex; i++) {
this.groups.push(this.demansion.group().reduceSum(function(d) {
return d.stackNumber === i ? d.coordinate : 0
}))
}
并建立了一个图表
barChart
.dimension(this.demansion)
.group(this.groups[0])
.width(document.getElementById('main-card').offsetWidth*0.9)
.height(480)
.y(d3.scaleLinear().domain([0,self.maxY]))
.x(d3.scaleLinear().domain([0,45]))
.centerBar(true)
.renderHorizontalGridLines(true)
for(let i = 1; i<this.maxIndex; i++) {
this.barChart.stack(this.groups[i]);
}
现在我需要为堆栈的每个元素设置颜色,按照它的值概率,但是在colorAccessor(function(d) { })我有“坐标”值。
我需要什么才能在 colorAccessor 中获得真实的概率值?
【问题讨论】:
-
您好,欢迎来到 StackOverflow。请花一些时间阅读帮助页面,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。更重要的是,请阅读the Stack Overflow question checklist。您可能还想了解Minimal, Complete, and Verifiable Examples。
-
特别是,SO 应该是自包含的。因此,虽然链接到邮件列表上的 SO 问题可能有意义,但链接到 SO 上的邮件列表帖子将不受欢迎。
-
好的,我粘贴进去并格式化了。
标签: javascript d3.js dc.js crossfilter stacked-chart