G2Plot

G2Plot缩略轴(slider)的滚轮控制功能

G2Plot的缩略轴目前仅支持通过拖拽的方式来改变视图,业务期望能像echarts那样通过滚轮控制可视区域。通过尝试,发现可以通过chart原型上的onChangeFn控制视图

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

fetch('https://gw.alipayobjects.com/os/bmw-prod/1d565782-dde4-4bb6-8946-ea6a38ccf184.json')
  .then((res) => res.json())
  .then((data) => {
    const area = new Area('container', {
      data,
      xField: 'Date',
      yField: 'scales',
      xAxis: {
        tickCount: 5,
      },
      animation: false,
      slider: {
        start: 0.1,
        end: 0.9,
        trendCfg: {
          isArea: true,
        },
      },
    });
    area.render();

    area.on('slider:mousewheel', (...args) => {

      //原生滚轮事件
      let event = args[0].gEvent.originalEvent
      event.preventDefault();

      //滚轮步长,可自定义
      const step = event.deltaY > 0 ? (1/data.length) : -(1/data.length);

      let start = area.chart.getController('slider').start
      let end = area.chart.getController('slider').end
      if (start <= end) {
        start = (start + step) > 0 ? (start + step) : 0
        end = (end - step) < 1 ? (end - step) : 1
      } else {
        if (step < 0) {
          start = (start + step) > 0 ? (start + step) : 0
          end = (end - step) < 1 ? (end - step) : 1
        }
      }
      area.chart.getController('slider').onChangeFn([start, end])
    })

  });

<think>我们正在处理一个关于G2Plot使用教程的查询。根据用户的需求,他们希望找到G2Plot的入门教程和使用指南。我们有一些引用资料,其中引用[2]明确提到了“G2Plot 开源项目使用指南”,并指出该指南将带您了解核心结构,快速上手。因此,我们可以优先推荐这个使用指南。 另外,引用[1]和引用[3]提到了G2Plot的官网和GitHub地址,用户可以在这些地方找到官方文档和教程。引用[4]是关于PyG2Plot的,这是一个Python库,如果用户使用Python,那么也可以参考,但用户的问题中没有明确语言,所以我们可以先提供通用的G2Plot(JavaScript版本)的教程。 因此,回答应该包括: 1. 官方文档和GitHub资源(引用[1]和[3]) 2. 使用指南(引用[2]) 3. 如果用户需要Python版本,再提及PyG2Plot(引用[4]) 由于用户没有指定编程语言,我们先默认是JavaScript版本的G2Plot。 回答结构: 1. 介绍G2Plot并给出官方资源链接。 2. 推荐使用指南(引用[2]的内容)。 3. 简要说明如何快速入门,可能包括安装和使用步骤。 4. 如果用户需要其他语言绑定(如Python),再提供相关信息。 同时,根据系统指令,我们需要生成相关问题。 注意:引用标识要自然地添加在引用内容的末尾。</think>以下是关于 G2Plot 使用教程的详细指南,结合官方文档和开源资源整理: ### 一、G2Plot 入门核心步骤 1. **安装依赖** ```bash npm install @antv/g2plot # 通过npm安装 ``` 或直接引入CDN: ```html <script src="https://unpkg.com/@antv/g2plot"></script> ``` 2. **基础图表实现**(以柱状图为例)[^2][^3] ```javascript import { Bar } from '@antv/g2plot'; // 创建容器 const container = document.getElementById('chart-container'); // 数据配置 const data = [ { year: '2018', sales: 38 }, { year: '2019', sales: 52 }, { year: '2020', sales: 61 } ]; // 实例化图表 const barPlot = new Bar(container, { data, xField: 'sales', yField: 'year', seriesField: 'year', legend: { position: 'top-left' } }); barPlot.render(); // 渲染图表 ``` 3. **关键配置项说明**: - `xField`/`yField`:数据坐标轴映射字段 - `seriesField`:分组字段(用于多系列数据) - `label`:数据标签显示配置 - `interactions`:图表交互行为(如框选、缩放) ### 二、官方学习资源 1. **[GitHub 官方文档](https://github.com/antvis/G2Plot)** 提供完整API文档和60+图表示例(含代码沙盒)[^1][^3] 2. **交互式教程**: - 基础图表指南:[G2Plot 官方教程](https://g2plot.antv.antgroup.com/manual/tutorial/getting-started) - 高级功能:[自定义主题](https://g2plot.antv.antgroup.com/manual/advanced/theme) / [事件监听](https://g2plot.antv.antgroup.com/manual/advanced/interaction) 3. **Python用户参考**: 使用PyG2Plot库(目录结构见引用[4]),通过`pip install pyg2plot`安装,调用方式: ```python from pyg2plot import Plot line = Plot("Line") line.set_options({ "data": [...] }) # 配置与JS版一致 line.render("chart.html") ``` ### 三、最佳实践建议 1. **调试技巧**: - 使用`plot.update(options)`动态更新配置 - 通过`plot.destroy()`销毁实例避免内存泄漏 2. **性能优化**: - 大数据集开启`renderer: 'canvas'`(默认SVG) - 使用`dataCfg: { type: 'fetch' }`分片加载 > 注:所有图表遵循**图形语法**(Grammar of Graphics)理论,需理解"数据映射->图形标记->视觉编码"设计逻辑[^1][^3]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值