Как я могу скрыть / показать данные, которые в серии? (Highchart) - PullRequest
0 голосов
/ 03 февраля 2020

Я знаю, как скрыть целую серию, но не знаю, как скрыть определенные c данные в серии. вот часть моего варианта:

series: [
    {
      data: [
        { x: 35, y: 35, z: 50.8, name: "A" ,visible:false},
        { x: 25, y: 75, z: 50.8, name: "B" },
        { x: 45, y: 55, z: 50.8, name: "C", color: "red" }
      ]
    }

mydemo visible: false - половина работы, фон исчез, но метка данных все еще там, я хочу скрыть ее, и никакого взаимодействия с пользователем .

и я хочу скрыть / показать тигра на пузыре, щелкнув вот так:

  const onClickBubble = event => {

    let currentPointName = event.point.name;
    console.log(chartRef.current.chart.series[0].options.data);
    option.series[0].data.forEach(element => {
      if (currentPointName === element.name) {
        element.color = "green";
      } else {
        //hide other bubble here
        element.visible = false;
      }
    });

    let NewOptoin = Object.assign({}, option);
    setOption(NewOptoin);

  };

так вот:

events: {
    load: function(){
      var point = this.series[0].points[0];
      ['graphic', 'dataLabel'].forEach(function (key) {
          if (point[key]) {
              point[key].hide();
          }
      });
    }
  }

серии нет [x]. точки на графике так что этот способ может не работать для меня.

1 Ответ

0 голосов
/ 03 февраля 2020

Вы можете скрыть точку в событии load:

chart: {
  events: {
    load: function(){
      var point = this.series[0].points[0];

      ['graphic', 'dataLabel'].forEach(function (key) {
          if (point[key]) {
              point[key].hide();
          }
      });
    }
  }
}

Демонстрационная версия: http://jsfiddle.net/BlackLabel/6m4e8x0y/4805/

Справочник по API:

https://api.highcharts.com/class-reference/Highcharts.SVGElement#hide

https://api.highcharts.com/highcharts/chart.events.load

...