g2plot2.4.7版本 dualaxes slider的交互,例子
时间: 2024-02-25 10:53:26 浏览: 169
以下是使用 G2Plot 2.4.7 版本中的 `dualaxes` 组件和 `slider` 组件实现交互的一个简单例子:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>G2Plot DualAxes Slider Example</title>
<script src="https://cdn.jsdelivr.net/npm/@antv/g2plot@2.4.7/dist/g2plot.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@antv/g2@4.1.10/dist/g2.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@antv/data-set@0.10.2/dist/data-set.min.js"></script>
<script src="https://gw.alipayobjects.com/os/antv/pkg/_antv.g2-plugin-slider/2.0.0/build/g2-plugin-slider.js"></script>
</head>
<body>
<div id="canvas-container"></div>
<div id="slider-container"></div>
<script>
// 生成数据
const data = [];
for (let i = 0; i < 100; i++) {
data.push({
x: i,
y1: Math.sin(i / 10),
y2: Math.cos(i / 10)
});
}
// 创建画布和 dualaxes 组件
const canvas = document.getElementById('canvas-container');
const plot = new DualAxes(canvas, {
data: [data, data],
xField: 'x',
yField: ['y1', 'y2'],
xAxis: [
{
sync: false,
// 其他 xAxis 配置项
}
],
yAxis: [
{
sync: false,
// 其他 yAxis 配置项
},
{
sync: false,
// 其他 yAxis 配置项
}
]
});
// 创建 slider 组件
const slider = new Slider({
domNode: '#slider-container',
width: 600,
height: 26,
xAxis: {
max: data[data.length - 1].x,
min: data[0].x
}
});
// 在 slider 组件的 change 事件中更新 dualaxes 组件中的数据
slider.on('change', (range) => {
const [start, end] = range;
const newData1 = data.filter((d) => d.x >= start && d.x <= end);
const newData2 = data.filter((d) => d.x >= start && d.x <= end);
plot.changeData([newData1, newData2]);
});
</script>
</body>
</html>
```
这个例子中,我们使用 `sin` 和 `cos` 函数生成了一个包含 100 个数据点的数据集。然后,我们创建了一个 `DualAxes` 组件和一个 `Slider` 组件,并在 `DualAxes` 组件中显示了 `sin` 和 `cos` 函数的图像。在 `Slider` 组件的 `change` 事件中,我们根据滑块的范围更新了 `DualAxes` 组件中的数据,并使用 `changeData` 方法更新了图像。
您可以将这个例子保存为 HTML 文件,在浏览器中打开,查看效果。需要注意的是,为了能够正常使用这个例子,需要在 HTML 文件中引入 G2Plot、G2 和 DataSet 库以及 `g2-plugin-slider` 插件。
阅读全文