barStyle

柱图样式

全局样式或条件样式配置

支持图表类型: bar, barParallel, barPercent, column, columnParallel, columnPercent

selector

数据筛选器

若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力

若未配置selector, 则样式全局生效.

value

export const SelectorBarValue = 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 },
    ],
    barStyle: {
      selector: ['2019'],
      barColor: 'lightpink',
      barColorOpacity: 0.8,
      barBorderColor: 'lightpink',
      barBorderWidth: 4,
      barBorderStyle: 'dashed',
      barRadius: [8, 8, 0, 0],
    },
    dimensions: [{ id: 'date', alias: '日期' }],
    measures: [
      { id: 'profit', alias: '利润' },
      { id: 'sales', alias: '销售额' },
      { id: 'count', alias: '数量' },
    ],
  }
  return <VChartRender vseed={vseed} />
})

partial datum

export const SelectorBarPartialDatum = memo(() => {
  const vseed: VSeed = {
    chartType: 'bar',
    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 },
    ],
    barStyle: {
      selector: [{ sales: 60 }],
      barColor: 'lightblue',
      barColorOpacity: 0.8,
      barBorderColor: 'lightblue',
      barBorderWidth: 4,
      barBorderStyle: 'dashed',
      barRadius: [8, 8, 0, 0],
    },
    dimensions: [{ id: 'date', alias: '日期' }],
    measures: [
      { id: 'profit', alias: '利润' },
      { id: 'sales', alias: '销售额' },
      { id: 'count', alias: '数量' },
    ],
  }
  return <VChartRender vseed={vseed} />
})

dimension condition

export const SelectorBarDimensionCondition = memo(() => {
  const vseed: VSeed = {
    chartType: 'columnParallel',
    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 },
    ],
    barStyle: {
      selector: [
        {
          field: 'date',
          operator: 'in',
          value: ['2019', '2023'],
        },
      ],
      barColor: 'gray',
      barColorOpacity: 0.8,
      barBorderColor: 'gray',
      barBorderWidth: 4,
      barBorderStyle: 'dashed',
      barRadius: [8, 8, 0, 0],
    },
    dimensions: [{ id: 'date', alias: '日期' }],
    measures: [
      { id: 'profit', alias: '利润' },
      { id: 'sales', alias: '销售额' },
      { id: 'count', alias: '数量' },
    ],
  }
  return <VChartRender vseed={vseed} />
})

measure condition

export const SelectorBarMeasureCondition = memo(() => {
  const vseed: VSeed = {
    chartType: 'barParallel',
    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 },
    ],
    barStyle: {
      selector: {
        field: 'profit',
        operator: 'between',
        value: [20, 40],
      },
      barColor: 'lightgreen',
      barColorOpacity: 0.8,
      barBorderColor: 'lightgreen',
      barBorderWidth: 4,
      barBorderStyle: 'dashed',
      barRadius: [8, 8, 0, 0],
    },
    dimensions: [{ id: 'date', alias: '日期',   }],
    measures: [
      { id: 'profit', alias: '利润' },
      { id: 'sales', alias: '销售额' },
            { id: 'count', alias: '数量' },

    ],
  }
  return <VChartRender vseed={vseed} />
})

barStyle array

优先级顺序: 后者覆盖前者

export const MultiBarStyle = memo(() => {
  const vseed: VSeed = {
    chartType: 'barParallel',
    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 },
    ],
    barStyle: [
      {
        barColorOpacity: 0.8,
        barRadius: 10,
      },
      {
        selector: [40],
        barColor: 'lightgreen',
        barColorOpacity: 0.8,
      },
      {
        selector: [80],
        barColor: 'red',
        barColorOpacity: 0.8,
      },
    ],
    dimensions: [{ id: 'date', alias: '日期' }],
    measures: [
      { id: 'profit', alias: '利润' },
      { id: 'sales', alias: '销售额' },
      { id: 'count', alias: '数量' },
    ],
  }
  return <VChartRender vseed={vseed} />
})