Echarts: Как получить индексы данных из координатного диапазона? - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть график временных рядов 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...