123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320 |
- import F2 from '@antv/f2';
- // 建议统一从 lib 下引入
- const PieLabel = require('@antv/f2/lib/plugin/pie-label'); // 引入 PieLabel 模块
- // 方式一:全局注册
- F2.Chart.plugins.register(PieLabel);
- Page({
- data: {
- reportDate:'2020年11月',
- servantName:'王阿姨',
- serviceDay:'28',
- percentTop:'88%',
- expendTotal:'1888',
- taskNum:'60',
- },
- onLoad() {
- },
- onInitChart(F2, config) {
- // 饼状图
- const chart = new F2.Chart(config);
- const data = [
- { name: '打扫房间', proportion: 0.4, a: '1' },
- { name: '打扫厨房', proportion: 0.2, a: '1' },
- { name: '带孩子', proportion: 0.18, a: '1' },
- { name: '照顾老人', proportion: 0.15, a: '1' },
- { name: '清洁厨房', proportion: 0.05, a: '1' },
- { name: '其他', proportion: 0.02, a: '1' },
- ];
- chart.source(data);
- chart.legend({
- position: 'right'
- });
- chart.coord('polar', {
- transposed: true,
- innerRadius: 0.7,
- });
- chart.axis(false);
- chart
- .interval()
- .position('a*proportion')
- .color('name', [
- '#1890FF',
- '#13C2C2',
- '#2FC25B',
- '#FACC14',
- '#F04864',
- '#8543E0',
- ])
- .adjust('stack');
- chart.render();
-
- // 注意:需要把chart return 出来
- return chart;
- },
- onInitChart1(F2, config) {
- // 本月任务分布饼状图
- const chart = new F2.Chart(config);
- let taskNum=this.data.taskNum;
- // chart.plugins.register([ PieLabel ]);
- const data = [
- { name: '打扫房间', proportion: 0.4, a: '1' },
- { name: '打扫厨房', proportion: 0.2, a: '1' },
- { name: '带孩子', proportion: 0.18, a: '1' },
- { name: '照顾老人', proportion: 0.15, a: '1' },
- { name: '清洁厨房', proportion: 0.05, a: '1' },
- { name: '其他', proportion: 0.02, a: '1' },
- ];
- chart.source(data);
- chart.legend(false);
- chart.coord('polar', {
- transposed: true,
- innerRadius: 0.5,
- });
- chart.axis(false);
- chart
- .interval()
- .position('a*proportion')
- .color('name', [
- '#EB6F49',
- '#00D98B',
- '#FDB628',
- '#0091F1',
- '#00E4EC',
- '#8256E8',
- ])
- .adjust('stack');
- chart.guide()
- .text({
- position: [ '50%', '50%' ],
- style:{
- fill:'#7ED4F6',
- fontSize:'12',
- },
- content: ` 本月共
- ${taskNum}条任务`,
-
- limitInPlot:true,
- });
- chart.pieLabel({
- sidePadding: 30,
- activeShape: true,
- label1: function label1(data) {
- return {
- text: data.name,
- fill: '#7ED4F6',
- fontWeight: 'bold'
- };
- },
- label2: function label2(data) {
- return {
- text: data.proportion,
- fill: '#7ED4F6'
- };
- },
- onClick: function onClick(ev) {
- console.log(ev.data) ;
-
- }
- });
- chart.render();
-
- // 注意:需要把chart return 出来
- return chart;
- },
- onInitChart2(F2, config) {
- // 本月任务完成情况
- const chart = new F2.Chart(config);
- let taskNum=this.data.taskNum;
- // chart.plugins.register([ PieLabel ]);
- const data = [
- { name: '打扫房间', proportion: 0.4, a: '1' },
- { name: '打扫厨房', proportion: 0.2, a: '1' },
- { name: '带孩子', proportion: 0.18, a: '1' },
- { name: '照顾老人', proportion: 0.15, a: '1' },
- { name: '清洁厨房', proportion: 0.05, a: '1' },
- { name: '其他', proportion: 0.02, a: '1' },
- ];
- chart.source(data);
- chart.legend(false);
- chart.coord('polar', {
- transposed: true,
- });
- chart.axis(false);
- chart
- .interval()
- .position('a*proportion')
- .color('name', [
- '#EB6F49',
- '#00D98B',
- '#FDB628',
- '#0091F1',
- '#00E4EC',
- '#8256E8',
- ])
- .adjust('stack');
-
- chart.pieLabel({
- sidePadding: 30,
- activeShape: true,
- label1: function label1(data) {
- return {
- text: data.name,
- fill: '#7ED4F6',
- fontWeight: 'bold'
- };
- },
- label2: function label2(data) {
- return {
- text: data.proportion,
- fill: '#7ED4F6'
- };
- },
- onClick: function onClick(ev) {
- console.log(ev.data) ;
-
- }
- });
- chart.render();
-
- // 注意:需要把chart return 出来
- return chart;
- },
- onInitChart4(F2, config) {
- // 任务类完成详细情况
- // 本月任务分布饼状图
- const chart = new F2.Chart(config);
- let taskNum=this.data.taskNum;
- // chart.plugins.register([ PieLabel ]);
- const data = [
- { name: '打扫房间', proportion: 0.4, a: '1' },
- { name: '打扫厨房', proportion: 0.2, a: '1' },
- { name: '带孩子', proportion: 0.18, a: '1' },
- { name: '照顾老人', proportion: 0.15, a: '1' },
- { name: '清洁厨房', proportion: 0.05, a: '1' },
- { name: '其他', proportion: 0.02, a: '1' },
- ];
- chart.source(data);
- chart.legend({
- position: 'left'
- });
- chart.coord('polar', {
- transposed: true,
- innerRadius: 0.5,
- });
- chart.axis(false);
- chart
- .interval()
- .position('a*proportion')
- .color('name', [
- '#EB6F49',
- '#00D98B',
- '#FDB628',
- '#0091F1',
- '#00E4EC',
- '#8256E8',
- ])
- .adjust('stack')
- .style({
- lineWidth: 1,
- stroke: '#4413A0',
- lineJoin: 'round',
- lineCap: 'round'
- });
- chart.guide()
- .text({
- position: [ '50%', '50%' ],
- style:{
- fill:'#7ED4F6',
- fontSize:'12',
- backgroundColor:'#fff',
- },
- content: `完成
- 占比`,
-
- limitInPlot:true,
- });
- chart.render();
-
- // 注意:需要把chart return 出来
- return chart;
- },
- onInitChart5(F2, config) {
- //任务无法完成原因
- const chart = new F2.Chart(config);
- const data = [
- { value: 63.4, city: 'New York', date: '2011-10-01' },
- { value: 62.7, city: 'Alaska', date: '2011-10-01' },
- { value: 72.2, city: 'Austin', date: '2011-10-01' },
- { value: 58, city: 'New York', date: '2011-10-02' },
- { value: 59.9, city: 'Alaska', date: '2011-10-02' },
- { value: 67.7, city: 'Austin', date: '2011-10-02' },
- { value: 53.3, city: 'New York', date: '2011-10-03' },
- { value: 59.1, city: 'Alaska', date: '2011-10-03' },
- { value: 69.4, city: 'Austin', date: '2011-10-03' },
- ];
- chart.source(data, {
- date: {
- range: [0, 1],
- type: 'timeCat',
- mask: 'MM-DD'
- },
- value: {
- max: 300,
- tickCount: 4
- }
- });
- chart.area().position('date*value').color('city').adjust('stack');
- chart.line().position('date*value').color('city').adjust('stack');
- chart.render();
- // 注意:需要把chart return 出来
- return chart;
- },
- onInitChart0(F2, config) {
- //折线图
- const chart = new F2.Chart(config);
- const data = [
- { value: 63.4, city: 'New York', date: '2011-10-01' },
- { value: 62.7, city: 'Alaska', date: '2011-10-01' },
- { value: 72.2, city: 'Austin', date: '2011-10-01' },
- { value: 58, city: 'New York', date: '2011-10-02' },
- { value: 59.9, city: 'Alaska', date: '2011-10-02' },
- { value: 67.7, city: 'Austin', date: '2011-10-02' },
- { value: 53.3, city: 'New York', date: '2011-10-03' },
- { value: 59.1, city: 'Alaska', date: '2011-10-03' },
- { value: 69.4, city: 'Austin', date: '2011-10-03' },
- ];
- chart.source(data, {
- date: {
- range: [0, 1],
- type: 'timeCat',
- mask: 'MM-DD'
- },
- value: {
- max: 300,
- tickCount: 4
- }
- });
- chart.area().position('date*value').color('city').adjust('stack');
- chart.line().position('date*value').color('city').adjust('stack');
- chart.render();
- // 注意:需要把chart return 出来
- return chart;
- },
- });
|