layui柱状图tooltip获取x轴和y轴数据

核心代码

formatter: function (params) {
  var xValue = params[0].axisValue; // 获取x轴数值
  var yValue = params[0].value; // 获取y轴数值
  var str = "x轴数值:" + xValue + "<br/>" + "y轴数值:" + yValue;
  return str;
}

柱状图示例

// 柱状图信息
        function getEchartsDay(xdata, ydata, title) {
          // 每日统计
          // 具体的配置项信息
          //先调用echarts.getInstanceByDom()方法判断是否已经存在echarts实例,如果不存在再去初始化
          // 有的话就获取已有echarts实例的DOM节点
          var myChartElement = document.getElementById("zztChartDay");
          // let myChart = echarts.getInstanceByDom(myChartElement);
          var myChart;
          // 如果不存在,就进行初始化
          if (myChartElement) {
            myChart = echarts.init(myChartElement);
          }
          var optionDay = {
            legend: {
              data: ["公里数(km)"],
            },
            // hover时的提示浮窗
            tooltip: {
              trigger: "axis", // 触发类型 坐标轴触发
              backgroundColor: "#fff", // 通过设置rgba调节背景颜色与透明度
              borderColor: "#5098F8",
              extraCssText: "box-shadow: 0px 3px 5px 0px rgba(80,152,248,0.2);", // 给浮窗设置的css样式
              borderWidth: 1,
              padding: [15, 10, 15, 10],
              textStyle: {
                color: "#333",
                lineHeight: 24,
              },
              axisPointer: {
                // 坐标轴指示器,坐标轴触发有效  // 默认为直线,可选为:'line' | 'shadow' | 'none'
                type: "none",
              },
              formatter: function (params) {
                // 提示框浮层内容格式器,支持字符串模板和回调函数两种形式 此处为回调函数
                // var str = "当前巡查了" + params[0].value + "公里";
                var xValue = params[0].axisValue; // 获取x轴数值
                var yValue = params[0].value; // 获取y轴数值
                var str =
                  '<div style="text-align: left;">当前日期:' +
                  time +
                  xValue +
                  "<br/>当前里程:" +
                  yValue +
                  "公里</div>";
                return str;
              },
            },
            // 模拟x轴的横向滑动条
            dataZoom: {
              type: "slider", // 滑动条类型
              show: true,
              height: 5, // 设置高度
              xAxisIndex: 0, // 设置关联的x轴 如果只有一个,可以不写
              filterMode: "none", // 设置数据过滤模式
              backgroundColor: "#fff",
              borderColor: "#fff",
              fillerColor: "#eee", // 滚动条颜色
              showDetail: false, // 是否展示滚动条起始位置数据信息和结束位置数据信息
              bottom: 5, // 距离底部的位置
              dataBackground: {
                // 调整数据阴影的位置
                lineStyle: {
                  color: "#fff",
                },
                areaStyle: {
                  color: "#fff",
                },
              },
              startValue: 0, // 滚动条起始位置
              endValue: 9, // 滚动条结束为止
              zoomLock: true, // 锁定数据窗口(滚动条)大小 使其不可调节
              handleSize: 0, // 控制手柄大小
            },
            title: { text: title },
            // x轴相关
            xAxis: {
              type: "category", // 轴类型
              // 设置不展示轴线
              axisLine: {
                show: false,
              },
              // 不显示坐标轴刻度
              axisTick: {
                show: false,
                interval: 0,
              },
              // 坐标轴刻度元素相关
              axisLabel: {
                show: true,
                interval: 0, // 刻度之间的距离
                margin: 10, // 刻度与轴线之前的间隔
                // rotate: -45
                formatter: function (value) {
                  // 刻度标签(x轴坐标)的内容格式器,支持字符串模板和回调函数两种形式
                  var str = "";
                  var num = 6; //每行显示字数
                  var valLength = value.length; //该项x轴字数
                  var rowNum = Math.ceil(valLength / num); // 行数
                  if (valLength > 12) {
                    str =
                      value.substring(0, num) + "\n" + value.substring(num, 2 * num - 2) + " ... ";
                    return str;
                  } else {
                    for (var i = 0; i < rowNum; i++) {
                      var temp = "";
                      var start = i * num;
                      var end = start + num;
                      temp = value.substring(start, end) + "\n";
                      str += temp;
                    }
                    return str;
                  }
                },
              },
              // 这里设置x轴的坐标
              data: xdata,
            },
            // y轴相关
            yAxis: [
              {
                type: "value", // 轴类型
                // 不显示轴线
                axisLine: {
                  show: false,
                },
                // 不显示坐标轴刻度
                axisTick: {
                  show: false,
                },
                // 不展示坐标轴在 grid 区域中的分隔线
                splitLine: {
                  show: false,
                },
                // axisLabel: {
                //   formatter: function (val) {
                //     // 刻度标签(y轴坐标)的内容格式器,支持字符串模板和回调函数两种形式
                //     // return val + "km";
                //   },
                // },
                max: 150, // 坐标轴刻度最大值
                min: 0, // 坐标轴刻度最小值
              },
            ],

            series: [
              {
                type: "bar", // 设置图表类型
                name: "公里数(km)",
                coordinateSystem: "cartesian2d", // 该图表使用的坐标系 此处为二维直角坐标系
                // 柱子宽度
                barWidth: 22,
                // 柱子间距
                barCategoryGap: "100%",
                // y轴的延伸横线
                markLine: {
                  // 是否响应鼠标事件
                  silent: true,
                  label: {
                    show: false,
                  },
                  symbol: "none",
                  // 那些刻度展示延伸横线
                  data: [
                    {
                      yAxis: 0,
                    },
                    {
                      yAxis: 30,
                    },
                    {
                      yAxis: 60,
                    },
                    {
                      yAxis: 90,
                    },
                    {
                      yAxis: 120,
                    },
                    {
                      yAxis: 150,
                    },
                  ],
                },
                // 柱状图相关
                itemStyle: {
                  barBorderRadius: [4, 4, 4, 4],
                  color: "rgba(106,174,242,0.5)",
                },
                //鼠标悬停时:
                emphasis: {
                  disabled: false,
                  itemStyle: {
                    color: "rgba(106,174,242,1)",
                  },
                },
                // 这里设置整体的柱状图数据  name属性需要与上面x轴的data相对应
                data: ydata,
              },
            ],
          };
          // }

          // 将配置项应用在初始化过的myChart中
          myChart.setOption(optionDay);
        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖成范德彪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值