File tree 6 files changed +213
-0
lines changed
examples/case/interactions
6 files changed +213
-0
lines changed Original file line number Diff line number Diff line change
1
+ import { Column } from '@antv/g2plot' ;
2
+
3
+ const data = [
4
+ {
5
+ name : 'London' ,
6
+ 月份 : 'Jan.' ,
7
+ 月均降雨量 : 18.9 ,
8
+ } ,
9
+ {
10
+ name : 'London' ,
11
+ 月份 : 'Feb.' ,
12
+ 月均降雨量 : 28.8 ,
13
+ } ,
14
+ {
15
+ name : 'London' ,
16
+ 月份 : 'Mar.' ,
17
+ 月均降雨量 : 39.3 ,
18
+ } ,
19
+ {
20
+ name : 'London' ,
21
+ 月份 : 'Apr.' ,
22
+ 月均降雨量 : 81.4 ,
23
+ } ,
24
+ {
25
+ name : 'London' ,
26
+ 月份 : 'May' ,
27
+ 月均降雨量 : 47 ,
28
+ } ,
29
+ {
30
+ name : 'London' ,
31
+ 月份 : 'Jun.' ,
32
+ 月均降雨量 : 20.3 ,
33
+ } ,
34
+ {
35
+ name : 'London' ,
36
+ 月份 : 'Jul.' ,
37
+ 月均降雨量 : 24 ,
38
+ } ,
39
+ {
40
+ name : 'London' ,
41
+ 月份 : 'Aug.' ,
42
+ 月均降雨量 : 35.6 ,
43
+ } ,
44
+ {
45
+ name : 'Berlin' ,
46
+ 月份 : 'Jan.' ,
47
+ 月均降雨量 : 12.4 ,
48
+ } ,
49
+ {
50
+ name : 'Berlin' ,
51
+ 月份 : 'Feb.' ,
52
+ 月均降雨量 : 23.2 ,
53
+ } ,
54
+ {
55
+ name : 'Berlin' ,
56
+ 月份 : 'Mar.' ,
57
+ 月均降雨量 : 34.5 ,
58
+ } ,
59
+ {
60
+ name : 'Berlin' ,
61
+ 月份 : 'Apr.' ,
62
+ 月均降雨量 : 99.7 ,
63
+ } ,
64
+ {
65
+ name : 'Berlin' ,
66
+ 月份 : 'May' ,
67
+ 月均降雨量 : 52.6 ,
68
+ } ,
69
+ {
70
+ name : 'Berlin' ,
71
+ 月份 : 'Jun.' ,
72
+ 月均降雨量 : 35.5 ,
73
+ } ,
74
+ {
75
+ name : 'Berlin' ,
76
+ 月份 : 'Jul.' ,
77
+ 月均降雨量 : 37.4 ,
78
+ } ,
79
+ {
80
+ name : 'Berlin' ,
81
+ 月份 : 'Aug.' ,
82
+ 月均降雨量 : 42.4 ,
83
+ } ,
84
+ ] ;
85
+
86
+ const plot = new Column ( 'container' , {
87
+ data,
88
+ isGroup : true ,
89
+ xField : '月份' ,
90
+ yField : '月均降雨量' ,
91
+ seriesField : 'name' ,
92
+ interactions : [ { type : 'element-selected' } ]
93
+ } ) ;
94
+
95
+ plot . render ( ) ;
96
+ // 如果业务中还有单选联动,可以考虑使用按住某个键来区分交互 (或者多选之后,让用户自己去触发查询)
97
+ document . addEventListener ( 'keyup' , ( evt ) => {
98
+ if ( evt . key === 'Shift' ) {
99
+ const states = plot . getStates ( ) ;
100
+ // 获取选中元素
101
+ // states.filter(d => d.state === 'selected')
102
+ }
103
+ } ) ;
104
+
Original file line number Diff line number Diff line change
1
+ import { Funnel } from '@antv/g2plot' ;
2
+
3
+ const data = [
4
+ { stage : '简历筛选' , number : 253 } ,
5
+ { stage : '初试人数' , number : 151 } ,
6
+ { stage : '复试人数' , number : 113 } ,
7
+ { stage : '录取人数' , number : 87 } ,
8
+ { stage : '入职人数' , number : 59 } ,
9
+ ] ;
10
+
11
+ const funnelPlot = new Funnel ( 'container' , {
12
+ data : data ,
13
+ xField : 'stage' ,
14
+ yField : 'number' ,
15
+ legend : false ,
16
+ interactions : [ { type : 'element-active' } , { type : 'element-selected' } ] ,
17
+ } ) ;
18
+
19
+ funnelPlot . render ( ) ;
20
+ // 如果业务中还有单选联动,可以考虑使用按住某个键来区分交互 (或者多选之后,让用户自己去触发查询)
21
+ document . addEventListener ( 'keyup' , ( evt ) => {
22
+ if ( evt . key === 'Shift' ) {
23
+ console . info ( evt ) ;
24
+ const states = funnelPlot . getStates ( ) ;
25
+ console . info ( states . filter ( ( d ) => d . state === 'selected' ) ) ;
26
+ // 获取选中元素
27
+ // states.filter(d => d.state === 'selected')
28
+ }
29
+ } ) ;
Original file line number Diff line number Diff line change
1
+ {
2
+ "title" : {
3
+ "zh" : " 中文分类" ,
4
+ "en" : " Category"
5
+ },
6
+ "demos" : [
7
+ {
8
+ "filename" : " element-selected" ,
9
+ "title" : {
10
+ "zh" : " 元素多选交互" ,
11
+ "en" : " Element selected"
12
+ },
13
+ "screenshot" : " https://gw.alipayobjects.com/zos/antfincdn/VoiPvFL%26U5/pie-tooltip.gif"
14
+ },
15
+ {
16
+ "filename" : " pie-element-selected" ,
17
+ "title" : {
18
+ "zh" : " 饼图 - 元素多选交互" ,
19
+ "en" : " Element selected"
20
+ },
21
+ "screenshot" : " https://gw.alipayobjects.com/zos/antfincdn/VoiPvFL%26U5/pie-tooltip.gif"
22
+ },
23
+ {
24
+ "filename" : " funnelelement-selected" ,
25
+ "title" : {
26
+ "zh" : " 漏斗图 元素多选交互" ,
27
+ "en" : " Element selected"
28
+ },
29
+ "screenshot" : " https://gw.alipayobjects.com/zos/antfincdn/VoiPvFL%26U5/pie-tooltip.gif"
30
+ }
31
+ ]
32
+ }
Original file line number Diff line number Diff line change
1
+ import { Pie } from '@antv/g2plot' ;
2
+
3
+ const data = [
4
+ { type : '分类一' , value : 27 } ,
5
+ { type : '分类二' , value : 25 } ,
6
+ { type : '分类三' , value : 18 } ,
7
+ { type : '分类四' , value : 15 } ,
8
+ { type : '分类五' , value : 10 } ,
9
+ { type : '其他' , value : 5 } ,
10
+ ] ;
11
+
12
+ const piePlot = new Pie ( 'container' , {
13
+ appendPadding : 10 ,
14
+ data,
15
+ angleField : 'value' ,
16
+ colorField : 'type' ,
17
+ radius : 0.9 ,
18
+ label : {
19
+ type : 'inner' ,
20
+ offset : '-30%' ,
21
+ content : ( { percent } ) => `${ ( percent * 100 ) . toFixed ( 0 ) } %` ,
22
+ style : {
23
+ fontSize : 14 ,
24
+ textAlign : 'center' ,
25
+ } ,
26
+ } ,
27
+ interactions : [ { type : 'element-active' } , { type : 'element-selected' } ] ,
28
+ } ) ;
29
+
30
+ piePlot . render ( ) ;
31
+ // 如果业务中还有单选联动,可以考虑使用按住某个键来区分交互 (或者多选之后,让用户自己去触发查询)
32
+ document . addEventListener ( 'keyup' , ( evt ) => {
33
+ if ( evt . key === 'Shift' ) {
34
+ console . info ( evt ) ;
35
+ const states = piePlot . getStates ( ) ;
36
+ console . info ( states . filter ( ( d ) => d . state === 'selected' ) ) ;
37
+ // 获取选中元素
38
+ // states.filter(d => d.state === 'selected')
39
+ }
40
+ } ) ;
Original file line number Diff line number Diff line change
1
+ ---
2
+ title : Advanced interactions
3
+ order : 4
4
+ ---
Original file line number Diff line number Diff line change
1
+ ---
2
+ title : 高级交互
3
+ order : 4
4
+ ---
You can’t perform that action at this time.
0 commit comments