我想使用带有两个序数轴的dc.js创建bubbleChart
。当我尝试它时,我所有的气泡最终都在Y轴的顶部,而Y轴看起来并不是最有序的。
有没有办法正确地做到这一点?
以下是bubbleChart
的配置:
.dimension(dims.currencyinstrument)
.group(groups.currencyinstrument.pnlSum)
.keyAccessor(function(d) {
return d.key.split("~")[0]
})
.valueAccessor(function(d) {
return d.key.split("~")[1]
})
.radiusValueAccessor(function(d) {
return Math.abs(d.value)
})
.x(d3.scale.ordinal().domain(groups.currencyinstrument.pnlSum.all().map(function(d) {return(d.key.split("~")[0])}).unshift("")))
.y(d3.scale.ordinal().domain(groups.currencyinstrument.pnlSum.all().map(function(d) {return(d.key.split("~")[1])}).unshift("")))
.r(d3.scale.linear().domain([0,groups.currencyinstrument.pnlSum.all().map(function(d) {return(Math.abs(d.value))}).sort(function(a,b){return(b-a)})[0]]))
编辑:这是fiddle。从GitHub加载数据需要一段时间(~1分钟),但这一切都是值得的!
答案 0 :(得分:2)
简短的回答是coordinateGridMixin目前不支持序数Y标度。
通过删除elasticY并覆盖_prepareYAxis来改变它指定的错误范围,我能够得到它至少在这个小提琴中的显示:
dc.override(pnlPerCurrencyInstrumentTypebubbleChart, "_prepareYAxis", function(g) {
this.__prepareYAxis(g);
this.y().rangeBands([this.yAxisHeight(), 0])
});
http://jsfiddle.net/gordonwoodhull/xZFx4/10/
希望你能开始这个。我提交了这个bug来跟踪问题:
编辑:更仔细地看一下,我认为rangePoints而不是rangeBands在这里更合适... guess coordinateGridMixin需要有一个自定义点,以便条形图和散点图可以指定不同的行为。