当前位置: 首页 > article >正文

echarts 曲线图自定义提示框

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>曲线图</title>
  <!-- 引入 ECharts 库 -->
  <script src="https://cdn.jsdelivr.net/npm/echarts@5.3.0/dist/echarts.min.js"></script>
  <style>
    /* 设置图表容器的大小 */
    #main {
      width: 800px;
      height: 600px;
      margin: 0 auto;
    }
  </style>
</head>

<body>
  <!-- 图表容器 -->
  <div id="main"></div>
  <script>
    // 你的 JavaScript 函数
    function updateChart () {
      var chartDom = document.getElementById('main')
      var myChart = echarts.init(chartDom)

      // 示例数据
      var jsonData = [
        { time: '2024-01-01', name: 'Series1', kongshen: 100, yongshuiliang: 50, leijifangshuiliang: 200, wendu: 25, shuiya: 1.5, CH4: 10 },
        { time: '2024-01-02', name: 'Series2', kongshen: 120, yongshuiliang: 55, leijifangshuiliang: 220, wendu: 26, shuiya: 1.6, CH4: 12 },
        { time: '2024-01-03', name: 'Series3', kongshen: 130, yongshuiliang: 60, leijifangshuiliang: 240, wendu: 27, shuiya: 1.7, CH4: 14 }
      ]

      var timeData = []
      var series = []
      var kongshenData = []
      var yongshuiliangData = []
      var leijifangshuiliangData = []
      var wenduData = []
      var shuiyaData = []
      var CH4Data = []

      for (var i = 0; i < jsonData.length; i++) {
        var item = jsonData[i]
        timeData.push(item.time)
        kongshenData.push(item.kongshen)
        yongshuiliangData.push(item.yongshuiliang)
        leijifangshuiliangData.push(item.leijifangshuiliang)
        wenduData.push(item.wendu)
        shuiyaData.push(item.shuiya)
        CH4Data.push(item.CH4)

        series.push({
          name: item.name,
          type: 'line',
          stack: 'Total',
          data: [item.kongshen, item.yongshuiliang, item.leijifangshuiliang, item.wendu, item.shuiya, item.CH4],
          lineStyle: {
            width: 4, // 设置折线宽度为4(加粗)
          }
        })
      }

      var option = {
        title: {
          // text: '名称'
        },
        tooltip: {
          trigger: 'axis',
          
          formatter: function (params) {
    var html = '';
    params.forEach(function (param) {
        var name = param.seriesName;
        var value = param.value;
        var unit = '';
        var color = param.color;

        switch (name) {
            case '孔深':
                unit = 'm';
                break;
            case '涌水量':
                unit = 'm³/h';
                break;
            case '水温':
                unit = '℃';
                break;
            case '水压':
                unit = 'MPa';
                break;
            case '累计放水量':
                unit = 'm³';
                break;
            case 'CH4':
                unit = '%';
                break;
            default:
                break;
        }

        html += '<span style="color:' + color + '">&#x25cf;</span> ' + name + ': ' + value + ' ' + unit + '<br>';
    });
    
    return html;
}


        },
        legend: {
          data: ['孔深', '涌水量', '累计放水量', '水压', '水温', 'CH4'],
          textStyle: {
            color: 'blue' // 设置图例文字颜色为白色
          },
          formatter: function (name) {
            if (name == '孔深') {
              return name + '(m)'
            } else if (name == '涌水量') {
              return name + '(m³/h)'
            } else if (name == '水温') {
              return name + '(℃)'
            } else if (name == '水压') {
              return name + '(MPa)'
            } else if (name == '累计放水量') {
              return name + '(m³)'
            } else {
              return name + '(%)'
            }
          }
        },
        grid: {
          left: '3%',
          right: '4%',
          bottom: '3%',
          containLabel: true
        },
        toolbox: {
          feature: {
            saveAsImage: {}
          }
        },
        xAxis: {
          type: 'category',
          boundaryGap: false,
          data: timeData
        },
        yAxis: [
          {
            type: 'value'
          }
        ],
        series: [
          {
            name: '孔深',
            type: 'line',
            stack: 'Total',
            data: kongshenData,
            lineStyle: {
              normal: {
                width: 4, // 设置折线宽度为4(加粗)
              }
            }
          },
          {
            name: '涌水量',
            type: 'line',
            stack: 'Total',
            data: yongshuiliangData,
            lineStyle: {
              normal: {
                width: 4, // 设置折线宽度为4(加粗)
              }
            }
          },
          {
            name: '累计放水量',
            type: 'line',
            stack: 'Total',
            data: leijifangshuiliangData,
            lineStyle: {
              normal: {
                width: 4, // 设置折线宽度为4(加粗)
              }
            }
          },
          {
            name: '水压',
            type: 'line',
            data: shuiyaData,
            lineStyle: {
              normal: {
                width: 4, // 设置折线宽度为4(加粗)
              }
            }
          },
          {
            name: '水温',
            type: 'line',
            data: wenduData,
            lineStyle: {
              normal: {
                width: 4, // 设置折线宽度为4(加粗)
              }
            }
          },
          {
            name: 'CH4',
            type: 'line',
            data: CH4Data,
            lineStyle: {
              normal: {
                width: 4, // 设置折线宽度为4(加粗)
              }
            }
          }
        ]
      }

      option && myChart.setOption(option)
    }

    // 在页面加载完毕后执行函数
    window.onload = function () {
      // 调用你的函数
      updateChart()
    };
  </script>
</body>

</html>

主要代码就是

  formatter: function (params) {
            var html = ''
            params.forEach(function (param) {
              var name = param.seriesName
              var value = param.value
              var unit = ''
              var color = param.color

              switch (name) {
                case '孔深':
                  unit = 'm'
                  break
                case '涌水量':
                  unit = 'm³/h'
                  break
                case '水温':
                  unit = '℃'
                  break
                case '水压':
                  unit = 'MPa'
                  break
                case '累计放水量':
                  unit = 'm³'
                  break
                case 'CH4':
                  unit = '%'
                  break
                default:
                  break
              }

              html += '<span style="color:' + color + '">&#x25cf;</span> ' + name + ': ' + value + ' ' + unit + '<br>'
            })

            return html
          }

效果如下


http://www.kler.cn/a/232428.html

相关文章:

  • 机器学习-35-提取时间序列信号的特征
  • 虎扑APP数据采集:JavaScript与AJAX的结合使用
  • 驱动开发系列13 - Linux tasklet用法介绍
  • 深度学习和图像处理
  • Dolby TrueHD和Dolby Digital Plus (E-AC-3)编码介绍
  • [Linux] Linux信号捕捉
  • Kafka 生产调优
  • console.log导致内存泄露 打包时自动去掉console.log方法
  • 2024.2.8日总结(小程序开发5)
  • Flink Format系列(2)-CSV
  • C#用Array类的Reverse方法反转数组中元素
  • springboot/ssm出租车管理系统车辆调度管理系统Java系统
  • ChatGPT学习第一周
  • R语言rmarkdown使用
  • 用的到的linux-查找find-Day4
  • MySQL 的Sql脚本是如何被编译的
  • [office] Excel如何快速统一数字编号长度 #经验分享#其他
  • 排序算法---冒泡排序
  • SQL注入(SQL Injection)从注入到拖库 —— 简单的手工注入实战指南精讲
  • PSM-Net根据Stereo图像生成depth图像
  • DMA直接内存访问,STM32实现高速数据传输使用配置
  • 挖矿系列:细说Python、conda 和 pip 之间的关系
  • 配置ARM交叉编译工具的通用步骤
  • Redis篇之redis是单线程
  • ArcGIS Pro 按照字段进行融合或拆分
  • golang压缩与解压缩文件