<template> <!-- 图表 --> <div id="Line1"></div> </template> <script> // 导入 import { Line } from '@antv/g2plot' export default { mounted () { // 数据源 const dataSource = [ { title: '1998年5月', team: '三水集团', time: '1998', num: 500 }, { title: '1999年5月', team: '三水集团', time: '1999', num: 400 }, { title: '2021年5月', team: '三水集团', time: '2021', num: 1000 }, { title: '1998年6月', team: '笑笑集团啊', time: '1998', num: 1000 }, { title: '1999年6月', team: '笑笑集团啊', time: '1999', num: 100 }, { title: '2021年6月', team: '笑笑集团啊', time: '2021', num: 500 } ] // 创建 const line = new Line('Line1', { // 数据源 data: dataSource, // x轴对应key,横向线 xField: 'time', // y轴对应key,竖向线 yField: 'num', // 分组对应 key,多组数据 seriesField: 'team', // 线条是否为弧度 smooth: true, // x轴配置 xAxis: {}, // 提示 tooltip: { // 标题,设置的值,如果为字段key,则会从数据源中取值显示,如果数据源没有该key,则直接显示 title: 'title', // 自定义,class 必须跟官方的样式一致 containerTpl: ` <div class="g2-tooltip"> <!-- 标题容器,会自己填充 --> <div class="g2-tooltip-title"></div> <!-- 自定义头部,可以随便写 --> <div class="g2-tooltip-title">自定义头部</div> <!-- 列表容器,会自己填充 --> <ul class="g2-tooltip-list"></ul> <!-- 自定义尾部,可以随便写,这里是复用列表容器中的一行 item --> <li class="g2-tooltip-list-item"> <span class="g2-tooltip-marker"></span> <span class="g2-tooltip-name">自定义尾部</span>: <span class="g2-tooltip-value">100000</span> </li> </div> `, // 自定义列表 item 模板,class 必须跟官方的样式一致 itemTpl: ` <li class="g2-tooltip-list-item"> <span class="g2-tooltip-marker" style="background-color: {color};"></span> <span class="g2-tooltip-name">{name}</span>: <span class="g2-tooltip-value">{value}</span> </li> `, // 完全自定义提示框 // customContent: (title, items) => { // return `<div>${title}</div>` // }, // 允许鼠标滑入,这个开启是为了方便获取 tooltip 的 class,无需要可以关闭。 enterable: true, // 是否显示 hover 辅助线 showCrosshairs: true, // 辅助线配置 crosshairs: { // x 表示 x 轴上的辅助线,y 表示 y 轴上的辅助线,xy 表示两条辅助线 type: 'x', // 辅助线是否跟随鼠标移动 follow: false, // 辅助线配置 line: { // 样式配置 style: { // 线宽 lineWidth: 10 } } } }, // 图例列表 legend: { // y轴偏移 offsetY: 15, // 摆放位置 position: 'bottom', // 图例高度 itemHeight: 28, // 配置图例 marker: { // 图例样式 style: (style) => { // 重组样式 return { // 半径 r: 6, // 样式类型 symbol: 'square', // 填充 fill: style.fill || style.stroke, // 边框线宽 lineWidth: 1, // 边框填充颜色 stroke: style.fill || style.stroke, // 边框透明度 strokeOpacity: 1, // 线圆角 lineCap: 'round', lineJoin: 'round' } } } }, // 主题配置 theme: { // 分类个数小于 10 时使用 colors10: ['#A685FF', '#FBD86D'] // 分类个数大于 10 时使用 // colors20: ['#A685FF', '#FBD86D'] }, // 动画配置 // https://g2plot.antv.vision/zh/docs/api/options/animation animation: { // 配置图表第一次加载时的入场动画 appear: { // 动画效果 animation: 'wave-in', // 动画执行时间 duration: 2000 } } }) // 绘制 line.render() // 更新配置 // line.update({ xField: 'num' }) // 更新数据 // line.changeData(dataSource) // 销毁 // line.destroy() } } </script>