echarts 柱狀折線圖name相同,legend不完全展示問題和legend換行問題

問題圖如下:


問題.jpg

解決問題后的效果圖如下:


mix-line-bar情況一.jpg
let arr = [
  {
    name: 'Evaporation',
    text: 'Evaporation'
  },
  {
    name: 'Precipitation',
    text: 'Precipitation'
  },
  {
    name: '溫度',
    text: '溫度'
  },
  {
    name: 'Videot',
    text: '溫度'
  }
];

option = {
  grid: {
    top: '17%',
  },
  tooltip: {
    trigger: 'axis',
    axisPointer: {
      type: 'cross',
      crossStyle: {
        color: '#999'
      }
    },
    extraCssText: 'min-width:170px;',
    formatter: function (params) {
      var str = '';
      str += '<div>' + params[0].name + '</div>';
      params.forEach((item, index) => {
        //注意!tooltip也需處理name
        let name = arr.find((v) => v.name === params[index].seriesName).text;
        str += `<div style='display: flex;justify-content: space-between;'><div>${item.marker} ${name}</div><span style='font-size:15px;font-weight:bold;'>${item.value}</span></div>`;
      });
      return str;
    }
  },
  legend: [
    {
      orient: 'vertical',
      right: 140,
      data: [{ name: 'Evaporation' }, { name: 'Precipitation' }],//兩個為一組
      formatter: (name) => {
        let showText = arr.find((v) => v.name === name).text;
        return showText;
      }
    },
    {
      orient: 'vertical',
      right: 50,
      data: [{ name: '溫度' }, { name: 'Videot' }], //兩個為一組
      formatter: (name) => {
        let showText = arr.find((v) => v.name === name).text;
        return showText;
      }
    }
  ],
  xAxis: [
    {
      type: 'category',
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
      axisPointer: {
        type: 'shadow'
      }
    }
  ],
  yAxis: [
    {
      type: 'value',
      name: 'Precipitation',
      min: 0,
      max: 250,
      interval: 50,
      axisLabel: {
        formatter: '{value} ml'
      }
    },
    {
      type: 'value',
      name: 'Temperature',
      min: 0,
      max: 25,
      interval: 5,
      axisLabel: {
        formatter: '{value} °C'
      }
    }
  ],
  series: [
    {
      name: 'Evaporation',
      type: 'bar',
      tooltip: {
        valueFormatter: function (value) {
          return value + ' ml';
        }
      },
      data: [
        2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3
      ]
    },
    {
      name: 'Precipitation',
      type: 'bar',
      tooltip: {
        valueFormatter: function (value) {
          return value + ' ml';
        }
      },
      data: [
        2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3
      ]
    },
    {
      name: '溫度',
      type: 'line',
      yAxisIndex: 1,
      tooltip: {
        valueFormatter: function (value) {
          return value + ' °C';
        }
      },
      itemStyle: {
        normal: {
          color: '#fac858',
          lineStyle: {
            color: '#fac858'
          }
        }
      },
      data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
    },
    ,
    {
      name: 'Videot',
      type: 'line',
      yAxisIndex: 1,
      tooltip: {
        valueFormatter: function (value) {
          return value + ' %';
        }
      },
      itemStyle: {
        normal: {
          color: '#ee6666',
          lineStyle: {
            color: '#ee6666'
          }
        }
      },
      data: [3, 7, 3.8, 5, 8, 10.2, 12, 23.4, 23.0, 16.5, 12.0, 6.2]
    }
  ]
};


若legend不換行,水平展示:


mix-line-bar情況二.jpg
  legend: {
      orient: 'horizontal',
      right: 50,
      formatter: (name) => {
        let showText = arr.find((v) => v.name === name).text;
        return showText;
      }
    }
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容