Линейный график с двумя осями Y в dc.js
У меня есть составной график из трех линейных графиков. Один из графиков использует «фальшивую» группу, как предложеноВот. Как вы можете видеть на снимке ниже, хотя масштаб 3-го графика сильно отличается от двух других. Решение, которое я хотел бы, - иметь двухосную диаграмму, как показаноздесь в чистом d3. Я думаю, что это можно сделать с помощью .renderlet () на основной составной диаграмме, но мне было интересно, есть ли «более сексуальное» решение с чистым dc.js?
Вот снимок:
и вот мой код (в coffeescript) Я пытался использовать .y и .yAxis на внутренних графиках, но это не имело никакого эффекта.
actualValuesChart = dc.lineChart(mainChart)
.group(metric, "actual " + @displayName)
.valueAccessor (d) -> d.value.avg
.colors(['green'])
.interpolate('basis-open')
normValuesChart = dc.lineChart(mainChart)
.group(metric, "normal " + @displayName)
.valueAccessor (d) -> d.value.avg_avg
.colors(['rgba(0,0,255,1)'])
.interpolate('basis-open')
clipsCountChart = dc.lineChart(mainChart)
.group(buildFakeGroup(defaultClipsArray))
.colors(['red'])
.interpolate('basis-open')
# .y(d3.scale.linear().range([100, 0]))
# .yAxis(d3.svg.axis().scale(d3.scale.linear().range([100, 0])))
mainChart
.dimension(@dimension.monthStamp)
.width(thisChart.width + 30)
.height(thisChart.width*.333)
.yAxisLabel(@displayName)
.elasticY(true)
.x(d3.time.scale().domain([minDate,maxDate]))
.xUnits(d3.time.months)
.brushOn(true)
.legend(dc.legend().x(60).y(10).itemHeight(13).gap(5))
.renderHorizontalGridLines(true)
.compose([actualValuesChart,normValuesChart,clipsCountChart])