Соедините 3 разных графика echart с нулевыми рядными данными

#javascript #echarts

#javascript #электронные диаграммы

Вопрос:

Я могу успешно соединить 3 разных графика с помощью API connect.

 let echart_instance_1 = type1.current.getEchartsInstance();
let echart_instance_2 = type2.current.getEchartsInstance();
let echart_instance_3 = type3.current.getEchartsInstance();

echarts.connect([echart_instance_1, echart_instance_2, echart_instance_3]);
  

Все 3 графика связаны, поэтому всякий раз, когда я наведу курсор на echart_instance_1, остальные 2 будут следовать подсказке, но проблема возникает, когда null данные находятся в series.data и нескольких series.data.

 series: [
{
   type: "line"
   connectNulls: true,
   data: [1, 2, 3, 4, null, null, null, null]
},
{
   type: "line"
   connectNulls: true,
   data: [null, null, null, null, 5, 6, 7, null]
},
{
   type: "line"
   connectNulls: true,
   data: [null, null, null, null, null, null, null, 8]
}
]
  

Он разрывает соединение при наведении курсора мыши на график.
Есть ли какой-либо способ поддерживать соединение для другой серии.data?

Ответ №1:

Вероятно, проблема существует только на вашем локальном компьютере, она не может воспроизводиться с минимальной конфигурацией. Вам нужно опубликовать полную конфигурацию здесь или тщательно искать проблемы на локальном компьютере. С предоставленными данными это работает как шарм, см. Ниже.

 var myChart1 = echarts.init(document.getElementById('main1'));
var myChart2 = echarts.init(document.getElementById('main2'));
var myChart3 = echarts.init(document.getElementById('main3'));

// Unsert your code below
var option = {
  tooltip: {},
  xAxis: {
    data: ["Category1", "Category2", "Category3", "Category4", "Category5", "Category6", "Category7", "Category8"]
  },
  yAxis: {},
  series: [{
      type: "line",
      connectNulls: true,
      data: [1, 2, 3, 4, null, null, null, null]
    },
    {
      type: "line",
      connectNulls: true,
      data: [null, null, null, null, 5, 6, 7, null]
    },
    {
      type: "line",
      connectNulls: true,
      data: [null, null, null, null, null, null, null, 8]
    }
  ]
};

// Unsert your code above
myChart1.setOption(option);
myChart2.setOption(option);
myChart3.setOption(option);

echarts.connect([myChart1, myChart2, myChart3]);  
 <script src="https://cdn.jsdelivr.net/npm/echarts@4.9.0/dist/echarts.min.js"></script>
<div id="main1" style="width: 600px;height:200px;"></div>
<div id="main2" style="width: 600px;height:200px;"></div>
<div id="main3" style="width: 600px;height:200px;"></div>