F2提供了以下五种通用的交互行为(Interaction):
图表平移(Pan)
图表缩放(Pinch)
Swipe 快扫
饼图选中
柱状图选中
v-chart并不支持F2的交互行为(Interaction),如果我们要想图表支持Interaction,
有以下两种方式:
- 不用v-chart实现,直接用F2
- 基于v-chart组件进行二次封装
我以实现图表平移(Pan)举例:
示例所用的数据json下载 专送门
切记 F2不能
import F2 from '@antv/f2'
这样引入,一定要引入@antv/f2/lib/index
目录下的,不然会报 chart.interaction is not a function 错误 ,因为Interaction是挂载在@antv/f2/lib/index
目录下的实例中
不用v-chart实现,直接用F2
//...
<canvas ref="chart"></canvas>
//...
// 首先引入 F2
const F2 = require('@antv/f2/lib/index');
// 引入所有的交互行为
// require('@antv/f2/lib/interaction/');
// 单独引入 pan
require('@antv/f2/lib/interaction/pan');
const ScrollBar = require('@antv/f2/lib/plugin/scroll-bar')
// ...
methods: {
render () {
const chart = new F2.Chart({
el: this.$refs.chart,
pixelRatio: window.devicePixelRatio,
plugins: [ScrollBar]
});
chart.source(data, {
release: {
min: 1990,
max: 2010
}
});
chart.tooltip({
showCrosshairs: true,
showItemMarker: false,