chartIndex

概述

chartIndex 是一种交互组件,用于查看折线图相对于某个时间点的相对趋势。

example
import { Chart } from '@antv/g2';

const chart = new Chart({
  container: 'container',
  paddingLeft: 50,
});

chart.options({
  type: 'line',
  data: {
    type: 'fetch',
    value: 'https://assets.antv.antgroup.com/g2/indices.json',
  },
  encode: {
    x: (d) => new Date(d.Date),
    y: 'Close',
    color: 'Symbol',
    key: 'Symbol',
    title: (d) => d.Date.toLocaleString(),
  },
  axis: {
    y: {
      title: '↑ Change in price (%)',
      labelAutoRotate: false,
    },
  },
  scale: {
    y: {
      type: 'log',
    },
  },
  label: {
    text: 'Symbol',
    selector: 'last',
    style: {
      fontSize: 10,
    },
  },
  interaction: {
    chartIndex: {
      ruleStroke: '#aaa',
      labelDx: 5,
      labelTextAlign: 'center',
      labelStroke: '#fff',
      labelLineWidth: 5,
      labelFormatter: (d) => `${d.toLocaleDateString()}`,
    },
  },
});

chart.render();

使用方式

chartIndex 通过传入 配置项 对交互进行配置

({
  type: 'line',
  interaction: {
    chartIndex: {},
  },
});

配置层级

交互可以配置在 Mark 层级:

({
  type: 'line',
  interaction: { chartIndex: {} },
});

也可以配置在 View 层级,视图上声明的交互会传递给 children 声明的标记,如果该标记有声明对应的交互,就合并;否则不影响。

({
  type: 'line',
  interaction: { chartIndex: {} },
});

配置项

属性 描述 类型 默认值 必选
ruleStroke 指示线的颜色 string black
ruleLineWidth 指示线宽 number 1
ruleLineDash 虚线配置,第一个值为虚线每个分段的长度,第二个值为分段间隔的距离。ruleLineDash 设为[0,0]的效果为没有描边。 [number,number]
ruleStrokeOpacity 指示线的透明度 number
ruleOpacity 整体透明度 number
ruleShadowColor 指示线阴影颜色 string
ruleShadowBlur 指示线高斯模糊系数 number
ruleShadowOffsetX 指示线阴影距图形的水平距离 number
ruleShadowOffsetY 指示线阴影距图形的垂直距离 number
labelFontSize 文字大小 number
labelFontFamily 文字字体 string
labelFontWeight 字体粗细 number
labelLineHeight 文字的行高 number
labelTextAlign 设置文本内容的当前对齐方式 center | end | left | right | start
labelTextBaseline 设置在绘制文本时使用的当前文本基线 top | middle | bottom | alphabetic | hanging
labelFill 文字的填充色 string
labelFillOpacity 文字的填充透明度 number
labelStroke 文字的描边 string
labelLineWidth 文字描边的宽度 number
labelLineDash 描边的虚线配置,第一个值为虚线每个分段的长度,第二个值为分段间隔的距离。labelLineDash 设为[0,0]的效果为没有描边。 [number,number]
labelStrokeOpacity 描边透明度 number
labelOpacity 文字的整体透明度 number
labelShadowColor 文字阴影颜色 string
labelShadowBlur 文字阴影的高斯模糊系数 number
labelShadowOffsetX 设置阴影距文字的水平距离 number
labelShadowOffsetY 设置阴影距文字的垂直距离 number
labelDx 文字在 x 方向偏移 number
labelDy 文字在 y 方向偏移 number
labelFormatter 格式化日期 FormatterFunction

示例

指示线和文字

import { Chart } from '@antv/g2';

const chart = new Chart({
  container: 'container',
});
chart.options({
  type: 'line',
  autoFit: true,
  data: {
    type: 'fetch',
    value: 'https://assets.antv.antgroup.com/g2/indices.json',
  },
  encode: {
    x: (d) => new Date(d.Date),
    y: 'Close',
    color: 'Symbol',
    key: 'Symbol',
    title: (d) => d.Date.toLocaleString(),
  },
  axis: {
    y: {
      title: '↑ Change in price (%)',
      labelAutoRotate: false,
    },
  },
  scale: {
    y: {
      type: 'log',
    },
  },
  label: {
    text: 'Symbol',
    selector: 'last',
    style: {
      fontSize: 10,
    },
  },
  interaction: {
    tooltip: {
      crosshairs: false, // 关闭辅助线
    },
    chartIndex: {
      ruleStroke: 'pink',
      ruleLineWidth: 8,
      ruleLineDash: [4, 8],
      ruleShadowColor: 'green',
      ruleShadowBlur: 5,
      ruleShadowOffsetX: 5,
      ruleShadowOffsetY: 5,
      ruleOpacity: 0.9,
      labelDy: 30,
      labelFontSize: 20,
      labelTextAlign: 'center',
      labelFill: 'red',
      labelStroke: 'yellow',
      labelLineWidth: 2,
      labelFormatter: (d) => `${d.toLocaleDateString()}`,
    },
  },
});

chart.render();
全站搜索
文档与示例输入关键词开始搜索

输入关键词,查找文档、API 与示例

选择打开Esc关闭