antvg2 环图轮播_antv G2 图标,怎么控制Y轴的0轴,又怎么将负数显示在X轴下方?...

问题描述

AntV G2 3.X版本 折线图,无法控制Y轴的0轴位置,也无法让负值显示在X轴下方

问题出现的环境背景及自己尝试过哪些方法

1.修改chart.scale(option)配置里的Y轴min,max,range属性等都无法处理

2.创建新的view(option),并尝试修改view中配置的min,max也无法处理

相关代码import React, { useEffect } from 'react';

import { Chart } from '@antv/g2';

import DataSet from '@antv/data-set';

import './index.less';

const Index = () => {

const data = [

{ x: 1, y: 100.80 },

{ x: 2, y: 111.68 },

{ x: 3, y: 111.5 },

{ x: 4, y: 101.5 },

{ x: 5, y: -58.9 },

{ x: 6, y: 10 },

{ x: 7, y: 99.00 }

];

useEffect(() => {

const axis = ['x', 'y'];

const chart = new Chart({

container: 'chart-container',

autoFit: true, // 自动填充占满空间

height: 228,

padding: {

top: 18,

right: 50,

bottom: 50,

left: 80

},

width: 988

});

const view = chart.view({

start: {

x: 0,

y: 0

},

end: {

x: 1,

y: 1

}

});

view.source(data, {

'y': {

type: 'linear', // 连续类型数据

min: -60, // 设置最小值

max:112,

nice: false, // 禁止自动美化数据

// range:[-1, 1]

}

}); // 默认使用 chart 的列定义

view.line().position(`${axis[0]}*${axis[1]}`).color('#000AB2').tooltip(false);

view.area().position(`${axis[0]}*${axis[1]}`).color('l(90) 0:#0212B5 1:#f7f7f7').opacity(0.3);

view.point()

.position('x*y').shape('circle')

.style({

stroke: '#fff',

lineWidth: 1

});

view.render();

})

return (

)

};

export default Index;

你期待的结果是什么?实际看到的错误信息又是什么?

预期:我期待着原点是Y轴的0值,负值显示在X轴下方;

结果:所有的值全部显示在X轴的上方

e1f51e7018df6aadf2c81b1284975af5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
G2 4.x 版本中,Slider 已经被废弃了,因此无法直接使用。但是,G2 4.x 版本提供了一种新的实现缩略的方式,即使用缩略图组件(`mini`)。 具体实现步骤如下: 1. 在 G2 中创建主图和缩略图: ```javascript import { Chart } from '@antv/g2'; const chart = new Chart({ container: 'chart-container', width: 600, height: 400, }); const miniChart = new Chart({ container: 'mini-chart-container', width: 600, height: 60, }); ``` 2. 在主图中绘制图表: ```javascript chart.line().position('x*y').dataset(data); chart.render(); ``` 3. 在缩略图中绘制缩略图: ```javascript miniChart.line().position('x*y').dataset(data); miniChart.render(); ``` 4. 设置缩略图的范围和位置: ```javascript miniChart.scale({ x: { range: [0, 1], }, y: { range: [0, 1], }, }); miniChart.axis(false); miniChart.legend(false); miniChart.tooltip(false); miniChart.coordinate('rect').reflect('y'); miniChart.interaction('brush', { dragable: true, onBrushstart: () => { chart.hideTooltip(); }, onBrushmove: (ev) => { const selectedData = miniChart.get('brushedData'); chart.filter('x', (val) => { const value = val[0]; return selectedData.some((d) => d.x === value); }); chart.repaint(); }, onBrushend: (ev) => { const selectedData = miniChart.get('brushedData'); if (!selectedData.length) { chart.filter('x', () => true); chart.repaint(); } chart.showTooltip({ x: ev.x, y: ev.y }); }, }); ``` 在以上代码中,`miniChart.scale` 方法用于设置缩略图的范围,`miniChart.coordinate` 方法用于设置缩略图的位置,`miniChart.interaction` 方法用于设置缩略图的交互方式。 5. 在主图和缩略图之间进行联动: ```javascript chart.on('plotclick', (ev) => { const { x, y } = ev; const record = chart.getSnapRecords({ x, y })[0]; if (record) { const { x: xValue } = record._origin; miniChart.filter('x', (value) => value === xValue); miniChart.repaint(); } }); chart.on('plotenter', () => { miniChart.show(); }); chart.on('plotleave', () => { miniChart.hide(); }); ``` 在以上代码中,`chart.on('plotclick', ...)` 方法用于在主图中点击某个点时,同步更新缩略图的显示范围;`chart.on('plotenter', ...)` 方法用于在鼠标进入主图时显示缩略图;`chart.on('plotleave', ...)` 方法用于在鼠标离开主图时隐藏缩略图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值