У меня есть график временных рядов echarts с графическим компонентом прямоугольника, который можно перетаскивать. Я хотел бы найти данные из точек (представленных через данные серии) на графике, где компонент перекрывается.
Т.е. он должен быть похож на массив dataIndex, предоставленный компонентом кисти в событии 'brushSelected'.
У меня есть данные серии и графики, как показано ниже:
series: {
type: 'bar'
},
dataset: {
dimensions: ["time", "count"],
source: [
{ time:1555273567313 ,count: 120 },
{ time:1555273568313 ,count: 200 },
{ time:1555273569313 ,count: 150 },
{ time:1555273570313 ,count: 80 },
{ time:1555273571313 ,count: 70 },
{ time:1555273572313 ,count: 110 }
]
},
graphic: [
{
type: 'rect',
invisible: false,
x:0,
y:0,
z: 200,
draggable: true,
shape: {
width: 200,
height: 200
},
style: {
fill: 'rgba(0,0,0,0.3)'
}
}
]
Я получил произвольные данные из точек сетки, используя систему координат, по событию драгенды графического прямоугольника.
например,
// dragged position : [38, 61]
let coordinateSystem = chart.getModel().getSeries()[0].coordinateSystem;
coordinateSystem.pointToData([38, 61]);
Возвращает массив, подобный
[1555273566928.1914, 162.65055464370386]
Эти значения, по-видимому, являются данными координат сетки на основе предоставленной мной позиции.
Я хотел бы указать диапазон, например
[[38,0],[574,200]]
и я ожидаю результата с dataIndexes предоставленного набора данных или с фактическими данными. Например.,
[0,1,2,3,4]
//indexes corresponding to the first 5 entires in dataset.source