antv图例出现分页_legend-尾部跟随图例

本文展示了如何使用 AntV G2 库创建图表时,将图例设置为尾部跟随并实现分页效果。示例中通过 JavaScript 和 JSON 数据处理,动态生成折线图和点状图,并利用 G2 提供的 legend 方法进行图例配置,以突出特定国家的数据变化。
摘要由CSDN通过智能技术生成

源码复制成功复制失败全屏 复制 运行

legend-尾部跟随图例

$.getJSON('https://gw.alipayobjects.com/os/antvdemo/assets/data/fertility2.json', function(data) {

var dv = new DataSet.View().source(data).transform({

type: 'aggregate',

fields: ['value', 'value'],

operations: ['min', 'max'],

as: ['min', 'max'],

groupBy: ['country'],

orderBy: ['year']

}).rows;

data = new DataSet.View().source(data).transform({

type: 'sort-by',

field: 'year',

orderBy: 'ASC'

});

var valueMap = {};

var chart = new G2.Chart({

container: 'mountNode',

forceFit: true,

height: window.innerHeight,

padding: [10, 200, 50, 50]

});

chart.source(data);

chart.legend({

attachLast: true

});

chart.line().position('year*value').color('country').size('country', function(country) {

if (country === 'China') return 5;

return 2;

}).label('country*value*year', function(country, value, year) {

var result = null;

for (var i = 0; i < dv.length; i++) {

if (dv[i].country === country) {

if (dv[i].min === value && !valueMap[country + 'min']) {

valueMap[country + 'min'] = year;

result = value;

break;

}

if (dv[i].max === value && !valueMap[country + 'max']) {

valueMap[country + 'max'] = year;

result = value;

break;

}

}

}

return result;

}, {

labelLine: false,

offset: 10,

textStyle: {

stroke: '#fff',

lineWidth: 2

}

}).style({

lineCap: 'round'

});

chart.point().position('year*value').color('country').style({

lineWidth: 2

}).size('country*value*year', function(country, value, year) {

if (valueMap[country + 'min'] === year || valueMap[country + 'max'] === year) {

return 3;

}

return 0;

});

chart.render();

});

legend-尾部跟随图例

$.getJSON('https://gw.alipayobjects.com/os/antvdemo/assets/data/fertility2.json', function(data) {

var dv = new DataSet.View().source(data).transform({

type: 'aggregate',

fields: ['value', 'value'],

operations: ['min', 'max'],

as: ['min', 'max'],

groupBy: ['country'],

orderBy: ['year']

}).rows;

data = new DataSet.View().source(data).transform({

type: 'sort-by',

field: 'year',

orderBy: 'ASC'

});

var valueMap = {};

var chart = new G2.Chart({

container: 'mountNode',

forceFit: true,

height: window.innerHeight,

padding: [10, 200, 50, 50]

});

chart.source(data);

chart.legend({

attachLast: true

});

chart.line().position('year*value').color('country').size('country', function(country) {

if (country === 'China') return 5;

return 2;

}).label('country*value*year', function(country, value, year) {

var result = null;

for (var i = 0; i < dv.length; i++) {

if (dv[i].country === country) {

if (dv[i].min === value && !valueMap[country + 'min']) {

valueMap[country + 'min'] = year;

result = value;

break;

}

if (dv[i].max === value && !valueMap[country + 'max']) {

valueMap[country + 'max'] = year;

result = value;

break;

}

}

}

return result;

}, {

labelLine: false,

offset: 10,

textStyle: {

stroke: '#fff',

lineWidth: 2

}

}).style({

lineCap: 'round'

});

chart.point().position('year*value').color('country').style({

lineWidth: 2

}).size('country*value*year', function(country, value, year) {

if (valueMap[country + 'min'] === year || valueMap[country + 'max'] === year) {

return 3;

}

return 0;

});

chart.render();

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值