D3Charts-获取位置和高宽信息

核心在于了解Model的数据结构

当你发现画图功能无法满足需求时,要考虑通过处理数据来实现效果,比如分时图未收盘时要显示到15点;比如将x轴上移到y轴100的位置(axis.label.formatter)。正向对数据做处理,逆向对formatter做处理。

获取包围盒

1
2
3
4
const model = myChart.getModel('series', 0);
const view = myChart.getViewOfComponentModel(model);
const group = view.group;
const {x, y, width, height} = group.getBoundingRect()

获取柱子位置

1
2
3
4
let axisModel = globalModel.getComponent('axis')
let xScale = axisModel[0].getScale()
let yScale = axisModel[1].getScale()
let bandWidth = xScale.bandwidth()

数据相关

获取数据&更新数据

1
myChart.getDataModel(0).getData()

更新数据

1
myChart.getDataModel(0).setData(this.source.bar)