scatter

measures

散点图(measures 1 层)

1export const ScatterChart = memo(() => {
2  const vseed: VSeed = {
3    chartType: 'scatter',
4    dataset: [
5      { date: '2019', profit: 10, sales: 20 },
6      { date: '2020', profit: 30, sales: 60 },
7      { date: '2021', profit: 30, sales: 60 },
8      { date: '2022', profit: 50, sales: 100 },
9      { date: '2023', profit: 200, sales: 80 },
10    ],
11    measures: [
12      {
13        id: 'sales',
14        alias: '销售额',
15      },
16      {
17        id: 'profit',
18        alias: '利润',
19      },
20    ],
21    dimensions: [
22      {
23        id: 'date',
24        alias: '日期',
25      },
26    ],
27    label: {
28      enable: false,
29    },
30  }
31  return <VChartRender vseed={vseed} />
32})

散点图(measures 2 层)

1export const ScatterChart = memo(() => {
2  const vseed: VSeed = {
3    chartType: 'scatter',
4    dataset: [
5      { date: '2019', profit: 10, sales: 20 },
6      { date: '2020', profit: 30, sales: 60 },
7      { date: '2021', profit: 30, sales: 60 },
8      { date: '2022', profit: 50, sales: 100 },
9      { date: '2023', profit: 200, sales: 80 },
10    ],
11    measures: [
12      {
13        id: 'x',
14        children: [
15          {
16            id: 'sales',
17            alias: '销售额',
18          },
19        ],
20      },
21      {
22        id: 'y',
23        children: [
24          {
25            id: 'profit',
26            alias: '利润',
27          },
28        ],
29      },
30    ],
31    dimensions: [
32      {
33        id: 'date',
34        alias: '日期',
35      },
36    ],
37    label: {
38      enable: false,
39    },
40  }
41  return <VChartRender vseed={vseed} />
42})

组合散点图(measures 3 层)

1export const CombinationScatterChart = memo(() => {
2  const vseed: VSeed = {
3    chartType: 'scatter',
4    dataset: [
5      { date: '2019', profit: 10, sales: 20, rateOfReturn: 0.1 },
6      { date: '2020', profit: 20, sales: 40, rateOfReturn: 0.2 },
7      { date: '2021', profit: 30, sales: 60, rateOfReturn: 0.3 },
8      { date: '2022', profit: 40, sales: 80, rateOfReturn: 0.4 },
9      { date: '2023', profit: 200, sales: 100, rateOfReturn: 0.5 },
10    ],
11    dimensions: [
12      {
13        id: 'date',
14        alias: '日期',
15      },
16    ],
17    measures: [
18      {
19        id: 'first',
20        children: [
21          {
22            id: 'salesAndProfit',
23            alias: '销售额与利润',
24            children: [
25              {
26                id: 'sales',
27                alias: '销售额',
28              },
29              {
30                id: 'profit',
31                alias: '利润',
32              },
33            ],
34          },
35          {
36            id: 'ratio',
37            alias: '比率',
38            children: [
39              {
40                id: 'sales',
41                alias: '销售额',
42              },
43              {
44                id: 'rateOfReturn',
45                alias: '回报率',
46              },
47            ],
48          },
49        ],
50      },
51      {
52        id: 'second',
53        children: [
54          {
55            id: 'salesAndProfit',
56            alias: '销售额与利润',
57            children: [
58              {
59                id: 'sales',
60                alias: '销售额',
61              },
62              {
63                id: 'profit',
64                alias: '利润',
65              },
66            ],
67          },
68          {
69            id: 'ratio',
70            alias: '比率',
71            children: [
72              {
73                id: 'sales',
74                alias: '销售额',
75              },
76              {
77                id: 'rateOfReturn',
78                alias: '回报率',
79              },
80            ],
81          },
82        ],
83      },
84    ],
85  }
86  return <PivotChart vseed={vseed} />
87})

scatterMeasures

散点图(scatterMeasures 1 项)

1export const ScatterMeasures = memo(() => {
2  const vseed: VSeed = {
3    chartType: 'scatter',
4    dataset: [
5      { date: '2019', profit: 20, sales: 100 },
6      { date: '2020', profit: 30, sales: 600 },
7      { date: '2021', profit: 30, sales: 600 },
8      { date: '2022', profit: 50, sales: 500 },
9      { date: '2023', profit: 10, sales: 800 },
10    ],
11    scatterMeasures: [
12      {
13        xMeasures: [{ id: 'sales', alias: '销售额' }],
14        yMeasures: [{ id: 'profit', alias: '利润' }],
15      },
16    ],
17  }
18  return <VChartRender vseed={vseed} />
19})

散点图(scatterMeasures 2 项)

1export const ScatterMeasuresArray = memo(() => {
2  const vseed: VSeed = {
3    chartType: 'scatter',
4    dataset: [
5      { date: '2019', profit: 20, sales: 100 },
6      { date: '2020', profit: 30, sales: 600 },
7      { date: '2021', profit: 30, sales: 600 },
8      { date: '2022', profit: 50, sales: 500 },
9      { date: '2023', profit: 10, sales: 800 },
10    ],
11    scatterMeasures: [
12      {
13        xMeasures: [{ id: 'sales', alias: '销售额' }],
14        yMeasures: [{ id: 'profit', alias: '利润' }],
15      },
16      {
17        xMeasures: [{ id: 'sales', alias: '销售额' }],
18        yMeasures: [{ id: 'profit', alias: '利润' }],
19      },
20    ],
21  }
22  return <VChartRender vseed={vseed} />
23})

透视组合散点图

1export const PivotScatterChart = memo(() => {
2  const vseed: VSeed = {
3    chartType: 'scatter',
4    dimensions: [
5      { id: 'category', alias: '类别' },
6      { id: 'date', alias: '日期', encoding: 'column' },
7      { id: 'region', alias: '区域', encoding: 'row' },
8    ],
9    measures: [
10      {
11        id: 'group-sales',
12        alias: '销售额分组',
13        children: [{ id: 'sales', alias: '销售额' }],
14      },
15      {
16        id: 'group-sales',
17        alias: '销售额分组',
18        children: [
19          { id: 'sales', alias: '销售额' },
20          { id: 'profit', alias: '利润' },
21        ],
22      },
23    ],
24    label: {
25      enable: false,
26    },
27    dataset: [
28      { date: '2019', region: 'east', category: 'Grocery', profit: 10, sales: 100 },
29      { date: '2019', region: 'east', category: 'Beverages', profit: 30, sales: 320 },
30      { date: '2019', region: 'east', category: 'Dairy', profit: 30, sales: 300 },
31      { date: '2019', region: 'east', category: 'Household', profit: 50, sales: 240 },
32      { date: '2019', region: 'east', category: 'Personal', profit: 40, sales: 500 },
33      { date: '2019', region: 'west', category: 'Grocery', profit: 10, sales: 100 },
34      { date: '2019', region: 'west', category: 'Beverages', profit: 30, sales: 320 },
35      { date: '2019', region: 'west', category: 'Dairy', profit: 30, sales: 300 },
36      { date: '2019', region: 'west', category: 'Household', profit: 50, sales: 240 },
37      { date: '2019', region: 'west', category: 'Personal', profit: 200, sales: 500 },
38
39      { date: '2020', region: 'east', category: 'Grocery', profit: 10, sales: 100 },
40      { date: '2020', region: 'east', category: 'Beverages', profit: 30, sales: 320 },
41      { date: '2020', region: 'east', category: 'Dairy', profit: 30, sales: 300 },
42      { date: '2020', region: 'east', category: 'Household', profit: 50, sales: 240 },
43      { date: '2020', region: 'east', category: 'Personal', profit: 40, sales: 500 },
44      { date: '2020', region: 'west', category: 'Grocery', profit: 10, sales: 100 },
45      { date: '2020', region: 'west', category: 'Beverages', profit: 30, sales: 320 },
46      { date: '2020', region: 'west', category: 'Dairy', profit: 30, sales: 300 },
47      { date: '2020', region: 'west', category: 'Household', profit: 50, sales: 200 },
48      { date: '2020', region: 'west', category: 'Personal', profit: 200, sales: 500 },
49    ],
50  }
51  return <PivotChart vseed={vseed} />
52})