#d3.js #dc.js
#d3.js #dc.js
Вопрос:
В настоящее время у меня есть составной линейный график, в котором линии пересекаются в большинстве областей. По этой причине я начал искать способ изменить правый домен.
.rightY(d3.scaleLinear().domain([0,1]))
Правая ось — это процент, она не должна превышать 1 и, похоже, работает, если я не установил эластичность (true). Есть ли способ сделать левую ось эластичной, а правую — фиксированной?
Ответ №1:
Вы правы, что в настоящее время одна и та же настройка эластичности используется как для левой, так и для правой осей.
Однако elasticY
его действительно легко реализовать вручную, поэтому вы можете оставить его выключенным и вычислять левый домен всякий раз, когда диаграмма отображается или перерисовывается:
moveChart.on('preRender preRedraw', chart => {
const ranges = chart._calculateYAxisRanges(true, false);
chart.y(d3.scaleLinear().domain([ranges.lyAxisMin, ranges.lyAxisMax]));
})
Я понял это, посмотрев на источник для составной диаграммы, в частности _prepareLeftYAxis() и _prepareYAxis() .
Комментарии:
1. Опять же, Гордон, ты решил еще одну из моих проблем. Большое спасибо!