#sort
排序
排序配置, 统计类图表, 可根据指标或维度对类目轴或图例排序, 或自定义顺序
#sortAXis
#指标排序
export const SortAxisByMeasure = memo(() => {
const vseed: VSeed = {
chartType: 'line',
dataset: [
{ date: '2019', profit: 10, sales: 20, count: 15 },
{ date: '2020', profit: 30, sales: 60, count: 33 },
{ date: '2021', profit: 30, sales: 60, count: 22 },
{ date: '2022', profit: 50, sales: 100, count: 14 },
{ date: '2023', profit: 40, sales: 80, count: 30 },
],
dimensions: [{ id: 'date', alias: '日期' }],
measures: [
{ id: 'count', alias: '数量' },
{ id: 'sales', alias: '销售额', parentId: 'group' },
{ id: 'profit', alias: '利润', parentId: 'group' },
],
sort: {
order: 'desc',
orderBy: 'sales',
},
}
return <PivotChart vseed={vseed} />
})#维度排序
export const SortAxisByDimension = 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 },
],
dimensions: [{ id: 'date', alias: '日期' }],
measures: [
{ id: 'profit', alias: '利润' },
{ id: 'sales', alias: '销售额' },
{ id: 'count', alias: '数量' },
],
sort: {
order: 'desc',
orderBy: 'date',
},
}
return <VChartRender vseed={vseed} />
})#自定义排序
export const SortAxisByCustom = 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 },
],
dimensions: [{ id: 'date', alias: '日期' }],
measures: [
{ id: 'profit', alias: '利润' },
{ id: 'sales', alias: '销售额' },
{ id: 'count', alias: '数量' },
],
sort: {
customOrder: ['2022', '2023', '2021', '2020', '2019'],
},
}
return <VChartRender vseed={vseed} />
})#sortLegend
#图例自身排序
Tip
仅传入 order 则按图例自身的字符顺序排序
export const SortLegendBySelf = memo(() => {
const vseed: VSeed = {
chartType: 'column',
dataset: [
{ date: '2019', profit: 10, sales: 20, count: 15 },
{ date: '2020', profit: 30, sales: 60, count: 33 },
{ date: '2021', profit: 30, sales: 60, count: 22 },
{ date: '2022', profit: 50, sales: 100, count: 14 },
{ date: '2023', profit: 40, sales: 80, count: 30 },
],
dimensions: [{ id: 'date', alias: '日期' }],
measures: [
{ id: 'count', alias: '数量' },
{ id: 'sales', alias: '销售额' },
{ id: 'profit', alias: '利润' },
],
sortLegend: {
order: 'desc',
},
}
return <VChartRender vseed={vseed} />
})#指标排序
export const SortLegendByMeasure = memo(() => {
const vseed: VSeed = {
chartType: 'line',
dataset: [
{ date: '2019', profit: 10, sales: 20, count: 15 },
{ date: '2020', profit: 30, sales: 60, count: 33 },
{ date: '2021', profit: 30, sales: 60, count: 22 },
{ date: '2022', profit: 50, sales: 100, count: 14 },
{ date: '2023', profit: 40, sales: 80, count: 30 },
],
dimensions: [{ id: 'date', alias: '日期' }],
measures: [
{ id: 'count', alias: '数量' },
{ id: 'sales', alias: '销售额', parentId: 'group' },
{ id: 'profit', alias: '利润', parentId: 'group' },
],
sortLegend: {
order: 'desc',
orderBy: 'sales',
},
}
return <PivotChart vseed={vseed} />
})#维度排序
export const SortLegendByDimension = 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 },
],
dimensions: [{ id: 'date', alias: '日期', }],
measures: [
{ id: 'profit', alias: '利润' },
{ id: 'sales', alias: '销售额' },
{ id: 'count', alias: '数量' },
],
sortLegend: {
order: 'desc',
orderBy: 'date',
},
}
return <VChartRender vseed={vseed} />
})#自定义排序(图例名称)
Tip
builder.getColorItems() 可获取到图例名称的数组
export const SortLegendByCustom = 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 },
],
dimensions: [{ id: 'date', alias: '日期', }],
measures: [
{ id: 'profit', alias: '利润' },
{ id: 'sales', alias: '销售额' },
{ id: 'count', alias: '数量' },
],
sortLegend: {
customOrder: ['销售额', '数量', '利润'],
},
}
return <VChartRender vseed={vseed} />
})#自定义排序(图例Id)
Tip
builder.getColorIdMap() 可获取到图例id和名称的映射关系
export const SortLegendByCustomId = 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 },
],
dimensions: [{ id: 'date', alias: '日期', }],
measures: [
{ id: 'profit', alias: '利润' },
{ id: 'sales', alias: '销售额' },
{ id: 'count', alias: '数量' },
],
sortLegend: {
customOrder: ['数量-count', '销售额-sales', '利润-profit'],
},
}
return <VChartRender vseed={vseed} />
})