Skip to content

Releases: antvis/G2

v4.0.6

10 Apr 08:40
179445e
Compare
Choose a tag to compare
New Features
  • view 上添加手势事件支持 (e4f74a22)
Bug Fixes
  • geometry: geometry.clear() 以及 destroy() 时要清空、销毁内部变量 (c89ff974)
  • #2272: 当映射数据中不存在 x 和 y 时,不绘制 label (df60733e)
Performance Improvements
  • 性能优化,详见 MR
Documentation Changes
  • 添加 Gestrue 手势使用文档 (2c459853)

v4.0.5

08 Apr 05:21
303ef9e
Compare
Choose a tag to compare
Bug Fixes
  • #2261: 修复 tooltip 数据查找补全的问题 (4b29feab)
  • #2241: 修改图表更新过程中,tooltip 未及时消失而出现内容为空的问题 (0e9e65f5)

v4.0.4

03 Apr 06:17
Compare
Choose a tag to compare
New Features
  • event: 添加 plot:enter 和 plot:leave 事件 (1f9b96be)
  • interaction:
  • view:
    • 支持 plot 上的移动事件触发 (4a86b08a)
    • 添加一些方法的别名,以兼容 3.x,但是这些方法将会在 4.1 版本中移除 (6356363a)
  • force-fit: add forceFit api for chart (719b61b3)
Bug Fixes
  • theme:
    • 修复主题切换后,Geometry 样式未更新的问题 (7e75a543)
    • 修复在 chart 构造函数中设置 theme 对象不生效的问题. Closed #2258 (6863a69f)
    • 移除 label 的描边,会带来性能损耗 (99b799d9)
  • 移除 coord.getRadius() 的 ts-ignore 注释 (a02b7316)
  • geometry: 修复层叠点图上下区间点全部绘制的问题。Closed #2202 (d7edf5e6)
  • view: 修复 syncScale() 调用时机不当导致分面渲染性能直线下降的问题 (d492c0ea)
  • #2264: 修复 canvas 样式导致的 resize 问题, 修复容器层级 (10200851)
  • #2232: fix 当 legend item 点击的时候, 图例项变少 (19ca46ff)
  • #2173: fix legend overlap when in same direction (59db3b59)
  • #2212: fix when slider option has no start or end (36a3b5db)
  • #2222: fix scale pool memory leak (7f23a4c0)
  • #2215: fix chart min size = 100 (e49646d3)
  • #2195: fix autoFit 不生效 (92d607ec)
Refactors
  • use unpkg other than browser field in package.json (0185949b)
  • theme: 移除注册样式表机制,只提供根据样式表生成主题的方法 (9b0020ad)
  • geometry: 将获取 shape 默认属性时机从 Element 绘制提到 Geometry getDrawCfg() (cf9b2f4f)
  • sync-scale: use Map for perf (76813745)

v4.0.3

23 Mar 08:38
b1401bc
Compare
Choose a tag to compare
New Features
  • axis: 支持转置极坐标坐标轴的渲染, Closed #1744 (67a8beb0)
  • scale: 支持用户指定确定数据 id 的字段 (25caa91f)
  • tooltip:
    • position 属性新增 'auto' 值配置,并作为默认值 (8c3fda47)
    • tooltip 体验优化,当鼠标离开 tooltip 内容框时,非 locked 状态自动隐藏 (9f8fcad2)
    • 通过 pointer-events 属性来达到 tooltip 躲避鼠标的交互效果 (2e750aa4)(d5f1e21c)
  • event: 添加 element:statechange 事件 (de161f49)
  • interaction: 新增 legend, axis highlight actions (ab256905)
  • action:
    • export getActionClass, extend action (db635b7e)
    • 添加 throttledebounce 属性配置 (a7e9f18d)
  • export 所有的类型定义,生成对应的 API 文档 (219126ed)
Bug Fixes
  • label:
    • 修复极坐标下的第一个 label 对齐的问题 (8be4555d)
    • 修复漏斗图 label 问题:更新以及尖底漏斗图最后一个 label 的位置错误,Closed #1847 (cfd7c0a5)
    • 默认饼图 label 连接线颜色同图形元素颜色一致 (78323aae)
    • 修复 interval 类型 label 在转置直角坐标系下 position 计算错误问题 (39d02120)
  • tooltip:
    • 修复 tooltip markers 没有正确显示/隐藏的问题 (394dad27)
    • 修复 tooltip 数据为空时不隐藏的问题 (76edffdb)
    • 修复 tooltip 相同数据显示隐藏再显示时不展示的问题,Closed #2174, #2175 (c3357c1f)
  • action:
    • active-region: 修复背景框计算错误的问题 (7b5f651b)
  • options: 修复 chart.updateOptions() 更新失败的问题 (b1dff91b)
  • event: 调整 afterpaint 的抛出时机 (f1f8206c)
  • geometry: 修复 element 打标策略导致的数据未被全部绘制的问题,Closed #2141 (071fa7c2)
  • data: 修复使用数据引用造成数据未更新的问题 (bb258fc6)
  • event 修复当鼠标在图表上页面无法滚动的问题,Closed #2111
Refactors
  • label:
    • 重构 GeometryLabel。将 labels 组件的生成渲染移入 GeomtryLabel 中 (4537b965)
    • 重构 Label 相关模块,将饼图 label 的布局调整到 LabelLayout 中 (402d6c52)
Chores
  • 更新图表演示实例,优化实现代码,同时新添加动态气泡图以及带坐标轴的极坐标下的层叠柱状图
2020-03-22 18-17-49.2020-03-22 18_20_32.gif image.png
Documentation Changes
  • 更新事件、交互以及 FAQ 文档

v4.0.2

16 Mar 04:32
Compare
Choose a tag to compare
New Features
  • 将 Util 在从 core.ts 移到 src/index.ts 下 (e8d05d16)
  • 添加一些矩阵变换相关的工具方法 (921a45f3)
  • interaction:
Bug Fixes
  • slider: when changeData, slider min max text should be update (b06c9ee3)
  • auto-fix: fix height when autoFit and container has padding (1102a4a7)
  • annotation: 修复 chart.annotation() 接口中 animateOption 属性不生效的问题,Closed #2146 (6a3ecba1)
  • scale: 修复日期正则表达式将 '20200229' 判断为 time 类型的问题, related #2115 (f31ccca7)

v4.0.1

10 Mar 01:23
83f9ad0
Compare
Choose a tag to compare
Chores
New Features

v4.0.0

06 Mar 02:44
Compare
Choose a tag to compare

作为图形语法(the Grammar of Graphics)的前端实现,G2 已经经历多个版本的迭代。本次 G2 4.0 是一个新的起点,我们对底层架构做了大量的重构工作,G2 会更加关注于:图形语法,交互语法以及可视化组件体系的建设。我们希望 G2 4.0 会成为一个专业的、给用户带来更多可能性的可视化底层引擎,在满足传统型统计图表需求的基础上,能够更好地赋能于(但不限于):

  • 让开发者基于 G2 4.0 可以更快更好地封装上层图表库
  • 让交互式可视化更简单
  • 成为可视化领域的专业工具

虽然我们对 G2 内部进行了大规模的重构工作,包括数据处理流程(引入数据更新机制),图表组件,view 渲染更新逻辑以及事件、交互机制改造等,但是为了保障用户项目能够更平滑得升级,G2 4.0 保持了最大程度上的兼容,但是仍然有一部分 breaking change 需要注意。

变更说明

整体变化

  • 全面拥抱 TypeScript。
  • 全新的可视化组件:面向交互,体验优雅。
  • 强大的 View 模块:可单独使用,具备完备的可视化组件、事件,支持 View 嵌套以及自动布局。
  • 全新的交互语法。
  • 绘图引擎升级至 G 0.4 版本,支持双引擎切换。
  • 引入数据更新机制。
  • 动画机制改造,更细粒度,体验更好。
  • 模块化管理,提供更加灵活的扩展机制。

API 变更

G2 4.0 在功能上全面兼容 3.x 的功能,在 API 接口上,我们进行了一些优化,在最大程度兼容 3.x 语法的基础上,提供了对用户更加友好,更易理解的函数命名以及更合理的配置项结构,具体的变化记录如下:

不兼容改动
  • chart.source() 接口废弃,请使用 chart.data() 接口,同时列定义请通过 chart.scale()  接口进行定义。
  • chart.coord() 接口废弃,请使用 chart.coordinate()
  • chart.guide() 接口废弃,请使用 chart.annotation(),同时不再支持 chart.guide().html()
  • chart.view()  接口废弃,请使用 chart.createView()
  • chart.interact()  接口废弃,请使用 chart.interaction()
  • chart.repaint()  接口废弃,请使用 chart.render(update: boolean) 接口。
  • ❌ G2.Global 移除,默认的主题配置可以通过以下方式获取:
// 方式 1
import { getTheme } from '@antv/g2';
const defaultTheme = getTheme();

// 方式 2,通过 chart 示例获取当前主题
const theme = chart.getTheme();
  • geometry.active()  废弃,请使用 geometry.state() 接口。
  • geometry.select()  废弃,请使用 geometry.state() 接口。
  • geometry.opacity() 废弃,请使用 geometry.color()  中使用带透明度的颜色或者 geometry.style()  接口。
  • 以下语法糖不再支持:
    • pointJitter()  废弃,请使用 point().adjust('jitter')
    • pointDodge()  废弃,请使用 point().adjust('dodge')
    • ❌ intervalStack() 废弃,请使用 interval().adjust('stack')
    • ❌ intervalDodge() 废弃,请使用 interval().adjust('dodge')
    • ❌ intervalSymmetric() 废弃,请使用 interval().adjust('symmetric')
    • ❌ areaStack() 废弃,请使用 area().adjust('stack')
    • ❌ schemaDodge() 废弃,请使用  schema().adjust('stack')
  • Venn  以及 Violin  几何标记暂时移除,后续考虑以更好的方式支持。
  • ❌ 移除 Interval 几何标记以下两个 shape: 'top-line' 及  'liquid-fill-gauge',用户可以通过自定义 Shape 机制自己实现。
  • ❌ 移除 tail 类型的图例。
  • 内置常量重命名,一致使用小写 + '-' 命名规则,比如 shape('hollowCircle') 变更为 shape('hollow-circle')
配置项以及接口变更

我们在 4.0 中对以下接口以及一些接口中的属性进行了部分变更,在兼容 3.x 原有功能的基础上,让配置项更具语义,同时结构更加合理,具体请参考 API 文档。

  • new Chart(cfg)  接口属性更新(新老接口对比)

  • chart.data()  接口不再支持 DataView 格式数据,只支持标准 JSON 数组,所以在使用 DataSet 时,要取最后的 JSON 数组结果传入 G2: chart.data(dv.rows);

  • 所有同绘图相关的配置全部定义在 style 属性中:

chart.axis('value', {
  label: {
    style: {
      textAlign: 'center',
    }, // 设置坐标轴文本样式
  },
  line: {
    style: {
      stroke: '#E9E9E9',
      lineDash: [3, 3],
    }, // 设置坐标轴线样式
  },
  grid: {
    line: {
      style: {
        lineDash: [3, 3],
      },
    }, // 设置坐标系栅格样式
  },
});
  • chart.tooltip() 配置项更新,同时将 G2 3.x 版本中一些针对特定图表的内置规则删除,需要用户自己通过提供的配置项进行配置,具体配置属性详见 API
  • chart.legend()  配置项更新,详见 API
  • chart.axis()  配置项更新,详见 API
  • chart.annotation()  各个类型的 annotation 配置项更新,详见 API
  • geometry().style() 方法的回调函数写法变更,不再支持一个配置属性一个回调的方式,而是使用一个回调:
style('a', (aVal) => {
  if (a === 1) return { fill: 'red' };
  return { fill: 'blue' };
});

详见 API

  • geometry.label() 接口更新,不再支持 html 类型的 label,详见 API

v3.5.12

16 Apr 14:19
Compare
Choose a tag to compare
chore: release 3.5.12