Echarts折线图超详细超细节配置

系列文章:

  1. Echart Bar 柱状图样式详解
  2. Echarts Bar 横向柱状图

Echarts 图标样式个性化设置,如 x 轴间距,y 轴样式,图例自定义,提示框自定义,数据列悬浮高亮,坐标指示器背景渐变色等等,解决折磨人的细节样式问题。

基础配置

title 标题组件

let title = {
  text: "累计消费趋势", // 标题
  subtext: "同比上年同期,累计消费增加200元", // 副标题
  top: -5, // 定位
  left: -5, // 定位
  subtextStyle: {
    // 副标题样式
    color: "#808080",
    fontSize: 12,
  },
};

legend 图例组件

  1. 将图例设置为圆形,并且更改图例大小和间距:icon, itemHeight,itemGap

  2. 修改图例文字和图表的距离:textStyle.padding,设置为负数时,就可以缩小间距了

let legend = {
  top: 24, // 定位,和副标题一排
  right: 0, // 定位,和副标题一排,且在右边
  icon: "circle", // 图例形状
  // itemWidth: 25, // 图例标记的图形宽度
  itemHeight: 6, // 图例标记的图形高度
  itemGap: 24, // 图例每项之间的间隔
  itemStyle: {}, // 图例的图形样式
  textStyle: {
    // 图例文字属性
    fontSize: 12,
    color: "#333",
    padding: [0, 0, 0, -8], // 修改文字和图标距离
  },
};

grid 绘图网格

一般用于调整绘图区域的属性,例如位置,距离等

ler grid = {
  top: 70,
  left: 0,
  right: 12,
  bottom: 0,
  containLabel: true,
}

xAxis 轴

默认只展示第一个和最后一个坐标,但是鼠标悬浮时要展示对应的 x 轴标签和 tooltip 配置

let xAxis = R.mergeDeepRight(xAxis, {
  type: "category",
  boundaryGap: false, // 不留白
  axisLabel: {
    interval: 50, // 只显示最大和最小坐标
    showMinLabel: true, // 显示最小标签
    showMaxLabel: true, // 显示最大标签
  },
  axisLine: {
    lineStyle: {
      type: "dashed", // 直线指示器为虚线
      // dashOffset: 5 // 虚线的偏移量
    },
  },
  axisPointer: {
    type: "line", // 直线指示器
  },
});

series 数据列

  1. 设置拐点的形状和大小(symbolsymbolSize);默认不显示,只有 hover 时才显示(showSymbol

  2. 设置区域背景色areaStyle.color

let series = [
  {
    type: "line",
    color: "#1890ff", // 线条颜色
    areaStyle: {
      color: "rgba(24,144,255,0.08)", // 区域背景色
    },
    showSymbol: false, // 只有在 tooltip hover 的时候显示
    symbol: "emptyCircle", // 拐点形状
    symbolSize: 6, //拐点大小
  },
  {
    type: "line",
    color: "#52c41a",
    areaStyle: {
      color: "rgba(82,196,26,0.08)",
    },
    showSymbol: false,
    symbol: "emptyCircle",
    symbolSize: 6,
  },
];

tooltip 提示框

  1. axisPointer.label.show = true:鼠标悬浮时,显示 x 轴标签,如 2 月,3 月;
  2. axisPointer.label.backgroundColor = transparent:鼠标悬浮时,去除刻度标签的背景色;
  3. axisPointer.label.padding = [20, 0, 0, 0]:调整刻度标签和轴线的距离;
  4. position = [10, 10]:tooltip提示框相对容器定位,固定位置;
  5. position = format():tooltip提示框相对鼠标定位,相对位置;
  6. formatter:自定义内容实现
let tooltip = {
  trigger: "axis",
  // 指示器样式配置
  axisPointer: {
    type: "cross",
    label: {
      show: true,
      color: "#808080",
      fontSize: 12,
      padding: [20, 0, 0, 0],
      backgroundColor: "transparent",
    },
    lineStyle: {
      color: "#808080",
      width: 0.5,
    },
    // position: [10, 10],
    // position(point, params) {
    //   // 默认距离鼠标定位
    //   if (params.length) {
    //     const { axisIndex, axisValue } = params[0];
    //     instance.convertToPixel({ xAxisIndex: axisIndex }, axisValue); // axisPointer position x
    //   }
    // },
    formatter: function(params) {
      let html = `<div style="height:auto;width:234px;">
          <div style="font-size:14px;font-weight:bold;color:#333;margin-bottom:16px;line-height:1;">
            截止 ${params[0].axisValue}
          </div>
          ${params
            .map(
              (
                item
              ) => `<div style="font-size:12px;color:#808080;margin-bottom:8px;display:flex;align-items:center;line-height:1;">
                <span style="display:inline-block;margin-right:8px;border-radius:6px;width:6px;height:6px;background-color:${
                  item.color
                };"></span>
                ${item.seriesName}
                <span style="flex:1;text-align:right;">${
                  item.value[item.encode.y[0]]
                }</span>
              </div>`
            )
            .join("")}
        </div>`;
      return html;
    },
  },
};

总体效果展示

let options = {
  title,
  legend,
  grid,
  xAxis,
  yAxis: R.merge(yAxis, {
    type: "value",
    axisPointer: {
      show: false,
    },
  }),
  series,
  dataset: {
    dimensions: ["金额", "2020年累计消费", "2021年累计消费"],
    source: [
      ["1月", 200, 100],
      ["2月", 288, 200],
      ["3月", 360, 486],
      ["4月", 450, 680],
    ],
  },
  tooltip,
}

请添加图片描述
请添加图片描述

  • 14
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据提供的引用内容,echarts折线图的定位可以通过调整xAxis、grid和legend等属性来实现。 1. xAxis属性可以通过设置type为"category"来指定x轴的类型为分类轴,通过设置boundaryGap为false可以去除x轴两端的留白。可以使用axisLabel来设置坐标轴标签的显示方式,例如设置interval为50表示只显示最大和最小坐标,使用showMinLabel和showMaxLabel来控制是否显示最小和最大标签。使用axisLine来设置坐标轴线的样式。axisPointer属性可以使用type为"line"来设置直线指示器的样式。 2. grid属性可以用于调整绘图区域的位置和距离。可以使用top、left、right和bottom来设置绘图区域距离画布的边界的距离,并使用containLabel来控制绘图区域是否包含标签。 3. legend属性可以用于修改图例的文字和图表的距离。可以使用textStyle.padding来设置图例文字和图标之间的距离,通过设置负数可以缩小间距。可以使用top和right来定位图例的位置,使用itemWidth和itemHeight来设置图例标记的图形宽度和高度,使用itemGap来设置图例每项之间的间隔。 通过调整这些属性,可以实现对echarts折线图的定位和布局。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Echarts折线图详细细节配置](https://blog.csdn.net/gaoxiaoba/article/details/119931075)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值