ColumnLine - 柱线混合图表

阅读时间约 7 分钟

快速上手

import { ColumnLine } from '@antv/g2plot';

const uvData = [
  { time: '2019-03', value: 350 },
  { time: '2019-04', value: 900 },
  { time: '2019-05', value: 300 },
  { time: '2019-06', value: 450 },
  { time: '2019-07', value: 470 },
];

const transformData = [
  { time: '2019-03', count: 800 },
  { time: '2019-04', count: 600 },
  { time: '2019-05', count: 400 },
  { time: '2019-06', count: 380 },
  { time: '2019-07', count: 220 },
];

const columnLine = new ColumnLine(document.getElementById('container'), {
  data: [uvData, transformData],
  xField: 'time',
  yField: ['value', 'count'],
});

columnLine.render();

配置属性

图表容器

width

可选, number

功能描述: 设置图表宽度。

默认配置: 400

height

可选, number

功能描述: 设置图表高度。

默认配置: 400

forceFit

可选, boolean

功能描述: 图表是否自适应容器宽高。当 forceFit 设置为true时,widthheight 的设置将失效。

默认配置: true

pixelRatio

可选, number

功能描述: 设置图表渲染的像素比

默认配置: 2

renderer

可选, string

功能描述: 设置图表渲染方式为 canvassvg

默认配置: canvas

数据映射

data 📌

必选, arrayObject[]

功能描述: 设置图表两份数据源

默认配置: 无

数据源为对象集合,例如:[{ time: '1991',value: 20 }, { time: '1992',value: 20 }]。 在双轴图中,需要指定两份数据源用以渲染双折线。第一份为柱形图数据,第二份为折线数据。

meta

可选, object

功能描述: 全局化配置图表数据元信息,以字段为单位进行配置。在 meta 上的配置将同时影响所有组件的文本信息。

默认配置: 无

细分配置项名称类型功能描述
aliasstring字段的别名
formatterfunctioncallback方法,对该字段所有值进行格式化处理
valuesstring[]枚举该字段下所有值
rangenumber[]字段的数据映射区间,默认为[0,1]

xField 📌

必选, string

功能描述: 图形在 x 方向(横向延伸)对应的数据字段名,一般对应一个连续字段。柱线双轴图的x字段必需一致,否则图表将不进行渲染。

默认配置: 无

yField 📌

必选, string[]

功能描述: 图形在 y 方向对应的数据字段名,一般对应分类字段。

柱线双轴图需要对的y字段进行分别指定,顺序为柱线图y字段、折线图y字段。

默认配置: 无

lineSeriesField

可选, string

功能描述: 多折线必选。 数据集中的分组字段名,一般对应一个分类字段。通过该字段的值,折线将会被分为多个组,通过颜色进行区分,视觉上呈现为多条折线。

默认配置: 无

图形样式

columnConfig

可选, object

配置柱线混合图的柱形样式。

color

可选, string

功能描述: 指定柱形颜色。

默认配置:采用 theme 中的色板。

columnSize

可选, number

功能描述: 设置柱形宽度。对于一般场景来说,柱形宽度会根据数据自行计算,不需特别指定。

默认配置: 无

columnStyle

可选, object

功能描述: 设置柱子样式。columnStyle中的fill会覆盖 color 的配置。columnStyle可以直接指定,也可以通过callback的方式,根据数据为每一根柱子指定单独的样式。

默认配置: 无

细分配置类型功能描述
fillstring填充颜色
strokestring描边颜色
lineWidthnumber描边宽度
lineDashnumber虚线描边
opacitynumber整体透明度
fillOpacitynumber填充透明度
strokeOpacitynumber描边透明度

label

功能描述: 柱形的标签文本

细分配置类型功能描述
visibleboolean是否显示
positionstringlabel的位置
- top 位于柱子顶部
- middle 位于柱子垂直中心
- bottom 位于柱子底部
formatterfunction对文本标签内容进行格式化
offsetXnumber在 label 位置的基础上再往 x 方向的偏移量
offsetYnumber在 label 位置的基础上再往 y 方向的偏移量
styleobject配置文本标签样式。
adjustColorboolean文本标签颜色是否自动适应图形颜色,position为middle时有效。
adjustPositionboolean是否根据显示区域自动调整文本标签位置,position为middle时有效。如图形区域容纳不下label,则label位置自动调整至图形上方。

lineConfig

可选, object

配置柱线混合图的折线样式。

color

可选, string | string[]

功能描述: 指定折线颜色。不配置lineSeriesField时显示为单折线,此时color传入一个颜色值即可,而配置lineSeriesField时显示为多条折线,color需要传入一个数组。

默认配置:采用 theme 中的色板。

lineSize

可选, number

功能描述: 设置折线宽度

默认配置: 2

lineStyle

可选, object

功能描述: 设置折线样式。linsStyle中的lineWidth会覆盖 lineSize 的配置,stroke会覆盖color的设置。

smooth

可选, boolean

功能描述: 是否将折线绘制为曲线 (spline)。

默认配置: false

point

可选, object

功能描述: 配置折线上的点

默认配置:

visible: false,
shape: 'circle',
size: 3,
style: {
    stroke: '#fff',
},
细分配置类型功能描述
visibleboolean是否显示
shapestring数据点形状
sizenumber数据点大小
styleobject数据点样式
- fill: string  填充色
- stroke: string  描边颜色
- lineWidth: number 描边粗细
- lineDash: number 虚线描边
- opacity: number 透明度
- fillOpacity: number 填充透明度
- strokeOpacity: number 描边透明度

label

功能描述: 折线的标签文本

细分配置类型功能描述
visibleboolean是否显示
formatterfunction对文本标签内容进行格式化
offsetXnumber在 label 位置的基础上再往 x 方向的偏移量
offsetYnumber在 label 位置的基础上再往 y 方向的偏移量
styleobject配置文本标签样式。

图表组件

title

可选, optional

功能描述: 配置图表的标题,默认显示在图表左上角。

细分配置类型功能描述
visibleboolean是否显示
alignTostring位置,支持三种配置:
'left'
styleobject样式:
- fontSize: number 文字大小
- fill: string 文字颜色
- stroke: string  描边颜色
- lineWidth: number 描边粗细
- lineDash: number 虚线描边
- opacity: number 透明度
- fillOpacity: number 填充透明度
- strokeOpacity: number 描边透明度

description

可选, optional

功能描述: 配置图表的描述,默认显示在图表左上角,标题下方。

细分配置类型功能描述
visibleboolean是否显示
alignTostring位置,支持三种配置:
'left'
styleobject样式:
- fontSize: number 文字大小
- fill: string 文字颜色
- stroke: string  描边颜色
- lineWidth: number 描边粗细
- lineDash: number 虚线描边
- opacity: number 透明度
- fillOpacity: number 填充透明度
- strokeOpacity: number 描边透明度

xAxis

可选, object

功能描述: x方向上的坐标轴,用于展示xField对应的映射信息

细分配置类型功能描述
visibleboolean是否可见
typestring坐标轴类型
- 'time':时间轴,
- 'linear': 连续轴
tickCountnumber坐标轴刻度数量
tickIntervalnumber坐标轴刻度间隔
lineobject坐标轴轴线
- visible: boolean 是否可见
- style:object 轴线样式
gridobject网格线
- visible: boolean 是否可见
- line:object 网格线样式
labelobject坐标轴标签
- visible: boolean 是否可见
- formatter: function 坐标轴标签格式化
- suffix: string 后缀
- precision:number  标签精度,如配置为 2,则格式化为 2 位小数
- mask: string 为日期文本添加格式化遮罩,当坐标轴type为time时生效
- offsetX: number 位置在x方向上的偏移量
- offsetY:number 位置在y方向上的偏移量
- style:object 样
-autoHide: boolean 是否自动隐藏
-autoRotate: boolean 是否自动旋转
tickLineobject坐标轴刻度
- visible:boolean 是否可见
- style: object 样式
titleobject坐标轴标题
- visible: boolean 是否可见
- text: string 标题文字
- offset: number 位置偏移量
- style:object 样式

yAxis

可选, object

双折线图的Y轴是双轴,分别位于图表区域的左右两端,其中左侧的Y轴对应柱形,右侧的Y轴对应折线。双Y轴有一些顶层配置,同时,也开放分别对两个轴进行配置。

min

可选, number

设置坐标轴最小值,该配置为顶层配置,同时影响两个Y轴。

max

可选, number

设置坐标轴最大值,该配置为顶层配置,同时影响两个Y轴。

tickCount

可选, number

设置坐标轴刻度数量,该配置为顶层配置,同时影响两个Y轴。

leftConfig

可选, object

左Y轴的细节配置。

细分配置类型功能描述
visibleboolean是否可见
lineobject坐标轴轴线
- visible: boolean 是否可见
- style:object 轴线样式
gridobject网格线
- visible: boolean 是否可见
- line:object 网格线样式
labelobject坐标轴标签
- visible: boolean 是否可见
- formatter: function 坐标轴标签格式化 DEMO
- suffix: string 后缀
- precision:number  标签精度,如配置为 2,则格式化为 2 位小数
- offsetX: number 位置在x方向上的偏移量
- offsetY:number 位置在y方向上的偏移量
- style:object 样
-autoHide: boolean 是否自动隐藏
-autoRotate: boolean 是否自动旋转
tickLineobject坐标轴刻度
- visible:boolean 是否可见
- style: object 样式
titleobject坐标轴标题
- visible: boolean 是否可见
- text: string 标题文字
- offset: number 位置偏移量
- style:object 样式

rightConfig

可选, object

右Y轴的细节配置,详细配置与leftConfig相同。

legend

可选, object

功能描述:图例,用于展示双折线分类信息

细分配置类型功能描述
visibleboolean是否可见
markerobject图例 marker
- symbol: string marker符号,默认为 'circle'。可选类型:circle,square,diamond,triangle,triangleDown,hexagon,bowtie,cross,tick,plus,hyphen,line,hollowCircle,hollowSquare,hollowDiamond
- style: object marker样式,其中 r 配置marker的大小,其余样式参数参考绘图属性文档。

tooltip

可选, object

功能描述:信息提示框

细分属性类型功能描述
visibleboolean是否显示
domStylesobject配置tooltip样式
- g2-tooltip: object 设置tooltip容器的CSS样式
- g2-tooltip-title: object 设置tooltip标题的CSS样式
- g2-tooltip-list: object 设置tooltip列表容器的CSS 样式
- g2-tooltip-marker: object 设置tooltip列表容器中每一项 marker的CSS样式
- g2-tooltip-value: object 设置tooltip 列表容器中每一项 value的CSS样式

事件

参见折线图事件

图表方法

render() 📌

必选

渲染图表。

updateConfig()

可选

更新图表配置项。

plot.updateConfig({
  width: 500,
  height: 600,
  legend: {
    visible: false,
  },
});
plot.render();

changeData(data: DataItem[][])

可选

更新图表数据。updateConfig()方法会导致图形区域销毁并重建,如果只进行数据更新,而不涉及其他配置项更新,推荐使用本方法。 请注意在双轴图使用changeData方法需传入两份数据。

plot.changeData(newData);

changeDataByIndex(data, index)

可选

更新指定折线数据,其中data为要更新的数据源,index为对应的折线序列(index为0时更新左轴折线数据,index为1是更新右轴折线数据)

plot.changeData(newData,0);

repaint()

可选

图表画布重绘。

destroy()

可选

销毁图表。