# Area 类

Area 继承于 Axis 类,主要实现图标的绘制,更新及销毁。

# Area 类的配置参数

interface AreaOptions extends AxisOptions

参数 描述 类型 默认值
areaLineColor 线条颜色 string[] ['rgba(233, 28, 65, 1)']
areaLineWidth 线条宽度 number 2
areaStartColor 绘制区域的起始颜色 string[] ['rgba(233, 28, 65, 1)']
areaEndColor 绘制区域的结束颜色 string ['rgba(246, 60, 118, 0)']
areaShowDot 是否显示指示点 boolean true
areaDotRadius 指示点半径 number 2.5
areaDotFillColor 指示点填充颜色 string[] ['#fff']
areaDotStorkColor 指示点描边颜色 string[] ['rgba(233, 28, 65, 1)']
areaDotLineWidth 指示点描边线宽 number 2
areaActiveDotRadius 激活指示点半径,在原指示点上叠加 number 8
areaActiveDotFillColor 激活指示点颜色 string[] ['rgba(233, 28, 65, 0.3)']
showResult 是否显示选中的数据信息 boolean true
drawResult 自定义绘制选中的数据信息 (ctx: CanvasRenderingContext2D, data: IData, chartParameter: LWChartParameter) => void; --
resultFormat 选中数据格式化后绘制 (data: IData) => string; --
resultStyle 绘制选中信息的样式 LWChartTextStyle defaultResultStyle
showAnimation 是否显示动画 boolean true
animationDuration 动画时长,单位 ms number 1000

通过继承 Axis 类,我们在使用 Area 实例化时,不仅可以使用 Area 该类自身的配置参数,还可以使用其父类 AxisLWChart 的配置参数,对图表进行配置。

areaStartColorareaEndColor 可用于区域填充颜色,颜色从上到下渐变。

resultStyle 默认值 defaultResultStyle 如下

参数 描述 类型 默认值
size 字体大小 number 12
font 字体 string PingFangSC-Semibold PingFang SC
weight 字体加粗 string normal
color 字体颜色 string #666
x x 坐标 number (el.offsetWidth || 30) - 30
y y 坐标 number titleStyle.y || 20

Area 类在绘制 result 时的对齐方式如下:

this.ctx.textBaseline = 'top';
this.ctx.textAlign = 'end';

IData 类型定义如下

参数 描述 类型
group 选中的数据在 yAxisData 的索引 number
xAxisVal x 坐标值 string
yAxisVal y 坐标值 number
x x 坐标, 已乘以 dpi number
y y 坐标, 已乘以 dpi number

LWChartParameter 类型定义如下:

参数 描述 类型
dpi - number
mousePosition 鼠标距离 canvas 左上角的位置, 已乘以 dpi IPos: {x: number; y: number}
canvasRect canvas 的宽高及坐标,已乘以 dpi LWChartRect
chartRect chart 的宽高及坐标,已乘以 dpi LWChartRect

LWChartRect 类型定义如下:

参数 描述 类型
startX 起始位置x轴坐标 number
startY 起始位置y轴坐标 number
endX 结束位置x轴坐标 number
endY 结束位置y轴坐标 number
width number
height number

drawResult 使用方法

drawResult 为自定义绘制选中数据样式。使用方法如下:

new Area(el, {
  title: '',
  drawResult: function (ctx, data, chartParameter) {
    const { dpi } = chartParameter;
    // 位置及尺寸参数需要乘以 dpi
    ctx.save();
    // do something
    ctx.restore();
  }
});

TIP

颜色参数可配置多个颜色,与 yAxisData 中的每一组数据对应, 如果不匹配将会取对应颜色数组的最后一个值

# Area 类的公共方法

方法名 描述 入参 返回值
forceUpdate 强制刷新canvas config:AreaOptions (可选) --
updateData 用于更新数据 xAxisData:string[] (可选)
yAxisData:number[][] (可选)
--

forceUpdate 方法可在容器尺寸发生变化时调用,该方法将会重新计算尺寸、初始化数据等重新绘制。

updateData 方法可在异步请求获取到数据后调用,该方法会重新初始化数据后进行绘制。