annotationPoint

selector

value point

export const AnnotationPointValue = memo(() => {
  const vseed: VSeed = {
    chartType: 'column',
    dataset: [
      { date: '2019', profit: 10, sales: 20, count: 50 },
      { date: '2020', profit: 30, sales: 60, count: 50 },
      { date: '2021', profit: 30, sales: 60, count: 50 },
      { date: '2022', profit: 50, sales: 100, count: 50 },
      { date: '2023', profit: 40, sales: 80, count: 50 },
    ],
    annotationPoint: {
      selector: 10,
      text: '最小值',
      textFontWeight: 600,
      textBaseline: 'bottom',
      textAlign: 'center',
      textColor: '#fff',
      backgroundColor: 'gray',
      backgroundBorderRadius: 10,
      backgroundPadding: 10,
      offsetY: -5,
    },
    dimensions: [{ id: 'date', alias: '日期' }],
    measures: [
      { id: 'profit', alias: '利润' },
      { id: 'sales', alias: '销售额' },
      { id: 'count', alias: '数量' },
    ],
  }
  return <VChartRender vseed={vseed} />
})

partial datum

export const AnnotationPointPartialDatum = memo(() => {
  const vseed: VSeed = {
    chartType: 'line',
    dataset: [
      { date: '2019', profit: 10, sales: 20, count: 50 },
      { date: '2020', profit: 30, sales: 60, count: 50 },
      { date: '2021', profit: 30, sales: 60, count: 50 },
      { date: '2022', profit: 50, sales: 100, count: 50 },
      { date: '2023', profit: 40, sales: 80, count: 50 },
    ],
    annotationPoint: [
      {
        selector: [
          {
            sales: 20,
          },
        ],
        text: ['销售额', '最小值 20'],
        textAlign: 'right',
        offsetX: -15,
      },
      {
        selector: [100],
        text: ['销售额', '最大值 100'],
        textAlign: 'right',
        offsetY: 15,
        offsetX: -20,
      },
    ],
    dimensions: [{ id: 'date', alias: '日期' }],
    measures: [
      { id: 'profit', alias: '利润' },
      { id: 'sales', alias: '销售额' },
      { id: 'count', alias: '数量' },
    ],
  }
  return <VChartRender vseed={vseed} />
})

condition

export const AnnotationPointCondition = memo(() => {
  const vseed: VSeed = {
    chartType: 'area',
    dataset: [
      { date: '2019', profit: 10, sales: 20, count: 50 },
      { date: '2020', profit: 30, sales: 60, count: 50 },
      { date: '2021', profit: 30, sales: 60, count: 50 },
      { date: '2022', profit: 50, sales: 100, count: 50 },
      { date: '2023', profit: 40, sales: 80, count: 50 },
    ],
    annotationPoint: [
      {
        selector: [
          {
            field: 'sales',
            operator: '<=',
            value: 80,
          },
        ],
        text: '销售额<=80',
        textAlign: 'right',
        offsetX: -15,
      },
      {
        selector: [
          {
            field: 'date',
            operator: 'in',
            value: '2023',
          },
        ],
        text: '2023 年',
        textAlign: 'left',
        offsetX: 0,
      },
    ],
    dimensions: [{ id: 'date', alias: '日期' }],
    measures: [
      { id: 'profit', alias: '利润' },
      { id: 'sales', alias: '销售额' },
      { id: 'count', alias: '数量' },
    ],
  }
  return <VChartRender vseed={vseed} />
})