我最近尝试向复合图表添加边距,并且图表绘制在Y轴的左侧。
图表是动态构建的。我尝试了更多的边距值组合,但是没有用。我想添加左边距,因为某些图表在y轴上具有较大的值。
以下是基本代码:
hist_margins = {top: 10, right: 50, bottom: 30, left: 40}
charts[i]
.compose([
dc.barChart(charts[i])
.dimension(dim)
.group(static_group)
.colors('#ccc')
.barPadding(0.1)
.controlsUseVisibility(true),
dc.barChart(charts[i])
.dimension(dim)
.colors('rgb(85, 160, 185)')
.group(group)
.barPadding(0.1)
.controlsUseVisibility(true)
.brushOn(false),
])
var min = dim.bottom(1)[0][it.variable],
max = dim.top(1)[0][it.variable];
charts[i]
.width(w_hist)
.height(h_hist)
.margins(hist_margins)
.dimension(dim)
.group(group)
.x(d3.scaleLinear().domain([min, max]))
.xAxisLabel(it.variable, 20)
.xUnits(dc.units.fp.precision(it.precision*1.5))
.brushOn(true)
.transitionDuration(0)
.renderTitle(true)
.title(function (d) {
return it.variable + ': ' + d.value
})
.controlsUseVisibility(true);
有什么想法吗?
从dc.js 3.1.4版本开始,您必须在调用.margins()
之前先调用.compose()
,以使值反映在子图表中。
但是,由于有了a PR by Keith Dahlby,该限制已被消除。
因此,您可以升级到dc.js 3.1.5(刚刚发布),也可以先致电.margins()
。