请通过邮件订阅网站,随时获取最新动态!

# Annotation 标注

图形标注,Annotation,作为图表的辅助元素,主要用于在图表上标识额外的标记注解。

# 图形标注类型

组件 描述 示例 用法
Line 辅助线(可带文本),例如表示平均值或者预期分布的直线。 <Annotation.Line />
Arc 辅助弧线,只在极坐标系下生效。常用于绘制仪表盘。 <Annotation.Arc />
Text 辅助文本,指定位置添加文本说明 <Annotation.Text />
Image 辅助图片,在图表上添加辅助图片。 <Annotation.Image />
Region 辅助框,框选一段图区,设置背景、边框等。 <Annotation.Region />
RegionFilter 区域着色,将图表中位于矩形选区中的图形元素提取出来,重新着色。 <Annotation.RegionFilter />
DataMarker 特殊数据点标注,多用于折线图和面积图。 <Annotation.DataMarker />
DataRegion 特殊数据点标注,多用于折线图和面积图。 <Annotation.DataRegion />
Html 自定义任意 HTML 类型的图形标记 ![html]() <Annotation.Html />

# 配置项API


# top

可选 boolean default: false

指定 annotation 是否绘制在 canvas 最上层,默认为 false, 即绘制在最下层

# style

可选 object default:

图形样式属性,详细绘图属性

# animate

可选 boolean default:

是否进行动画

# offsetX

可选 number default:

x 方向的偏移量

# offsetY

可选 number default:

y 方向的偏移量

定位方式属性

有两种定位方式,RegionPosition和PointPosition。

其中使用RegionPosition方式定位的组件具有start和end属性。

使用PointPosition方式定位的组件具有position属性。

使用RegionPosition的组件有:Image,Line,Arc,Region,DataRegion,RegionFilter

# start

可选 array | function default:

起始位置

数组内可以使用 'min', 'median', 'max' 关键字,代表原始值的最小值、平均值、最大值,例如: [0, 'min'] 表示 x 轴上数值为 0,y 轴位置在数值的最小值上;

表示位置的数组可以换成回调函数,函数原型: function(xScale, yScales) {return [];}

# end

可选 array | function default:

结束位置

数组内可以使用 'min', 'median', 'max' 关键字,代表原始值的最小值、平均值、最大值,例如: [0, 'min'] 表示 x 轴上数值为 0,y 轴位置在数值的最小值上;

表示位置的数组可以换成回调函数,函数原型: function(xScale, yScales) {return [];}

注意: 柱状图水位线绘制时建议用百分比

<Annotaion.Line
  start=['0%', '80%']
  end=['100%', '60%']
/>

效果如图

效果图

如start和end使用min和max,会出现线绘制不全的问题,从中心线开始计算

<Annotaion.Line
  start={['min', '120']}
  end={['max', '180']}
/>

效果如图

效果图

使用PointPosition的组件有:Text,DataMarker

# position

可选 array | function default:

定位位置

  • 数组内可以使用 'min', 'median', 'max' 关键字,代表原始值的最小值、平均值、最大值,例如: [0, 'min'] 表示 x 轴上数值为 0,y 轴位置在数值的最小值上;

  • 表示位置的数组可以换成回调函数,函数原型: function(xScale, yScales) {return [];}

# 组件特有API

Line

# text

可选 object default:

文本配置定义

<Annotation.Line
  start={['min', 2.517]}
  end={['min', 3.83]}
  text={{
    /** 文本位置,除了制定 'start', 'center' 和 'end' 外,还可以使用百分比进行定位, 比如 '30%' */
    position: 'start' | 'center' | 'end' | string,
    /** 是否自动旋转 */
    autoRotate?: boolean,
    /** 显示的文本内容 */
    content: string,
    /** 文本的图形样式属性 */
    style?: object,
    /** x 方向的偏移量 */
    offsetX?: number,
    /** y 方向偏移量 */
    offsetY?: number,
  }}
/>

Text

# content

必选 string | number default:

显示的文本内容

# rotate

可选 number default:

文本的旋转角度,弧度制

<Annotation.Text
  position={[0,'max']}
  content="显示文本"
  rotate={Math.PI * 0.25}
/>

Image

# src

必选 string default:

图片路径

<Annotation.Image
  start={['min', 2.517]}
  end={['min', 3.83]}
  src="..."
/>

RegionFilter

# color

必选 string default:

染色色值

# apply

可选 array default:

设定regionFilter只对特定geom类型起作用,如apply:['area']

<Annotation.RegionFilter
  start={['min', 2.517]}
  end={['min', 3.83]}
  color="#BAE7FF"
  apply={['area']}
/>

DataMarker

# point

可选 null | object default:

点设置,point:{ style?: object }。

# line

可选 null object default:

线条样式设置,line:{ style?: object, length?: number }。

# text

可选 null object default:

文本设置,text:{ style?: object, content: string }。

# autoAdjust

可选 boolean default:

文本超出绘制区域时,是否自动调节文本方向,默认为 true

# direction

可选 string default:

朝向,默认为 upward,可选值为 'upward' 或者 'downward'

<Annotation.DataMarker
  position={[0,'max']}
  point={{
    style: object,
  }}
  line={{ style?: object, length?: number }}
  text={{ style?: object, content: string }}
  autoAdjust
  direction='downward'
/>

DataRegion

# lineLength

可选 number default:

line长度,default为 0

# region

可选 null | number default:

标注区间的配置,region:{ style?: object }。

# text

可选 null | object default:

文本设置,text:{ style?: object, content: string }。

<Annotation.DataRegion
  start={['min', 2.517]}
  end={['min', 3.83]}
  region={{ style?: object }}
  lineLength={10}
  text={{ style?: object, content: string }}
/>

Region

辅助框,框选一段图区,设置背景、边框等,配置属性查看通用API。

Arc

配置属性查看通用API。

Html

# container

可选 string | HTMLElement default:

自定义 HTML 图形标记的容器元素

# html

可选 string | HTMLElement default:

自定义的图形标记的 HTML 元素,可为 HTML DOM 字符串,或 HTML 元素,或 html 回调函数 string_HTMLElement _((container: HTMLElement, view: View) => void | string | HTMLElement)

# alignX

可选 string default: left'

DOM 元素在 X 方向的对齐方式 'left' | 'middle' | 'right'

# offsetX

可选 number default:

X 方向的偏移

# offsetY

可选 number default:

Y方向的偏移

<Annotation.Html
   html="<div style='color:red'>Annotation.Html</div>"
   offsetX={40}
   offsetY={-50}
/>