#图表类型
图表类型
按图表类型约定图表默认的配置, 使用约定优于配置的方法, 每一种图表类型有大量约定配置, 极大简化配置心智
#Table
#表格
表格
{
"chartType": "table",
"dataset": [
{ "date": "2019", "type": "A", "goalProfit": 10, "profit": 10, "sales": 100, "leftCount": 1, "salesCount": 100 },
{ "date": "2020", "type": "A", "goalProfit": 30, "profit": 30, "sales": 320, "leftCount": 2, "salesCount": 200 },
{ "date": "2021", "type": "A", "goalProfit": 30, "profit": 30, "sales": 300, "leftCount": 3, "salesCount": 300 },
{ "date": "2022", "type": "A", "goalProfit": 50, "profit": 50, "sales": 240, "leftCount": 4, "salesCount": 400 },
{ "date": "2023", "type": "A", "goalProfit": 40, "profit": 40, "sales": 500, "leftCount": 5, "salesCount": 500 }
]
}#透视表
透视表
{
"chartType": "pivotTable",
"dataset": [
{ "date": "2019", "type": "A", "goalProfit": 10, "profit": 10, "sales": 100, "leftCount": 1, "salesCount": 100 },
{ "date": "2020", "type": "A", "goalProfit": 30, "profit": 30, "sales": 320, "leftCount": 2, "salesCount": 200 },
{ "date": "2021", "type": "A", "goalProfit": 30, "profit": 30, "sales": 300, "leftCount": 3, "salesCount": 300 },
{ "date": "2022", "type": "A", "goalProfit": 50, "profit": 50, "sales": 240, "leftCount": 4, "salesCount": 400 },
{ "date": "2023", "type": "A", "goalProfit": 40, "profit": 40, "sales": 500, "leftCount": 5, "salesCount": 500 }
]
}#Cartesian
#折线图
折线图
{
"chartType": "line",
"dataset": [
{ "date": "2019", "profit": 10, "sales": 20 },
{ "date": "2020", "profit": 30, "sales": 60 },
{ "date": "2021", "profit": 30, "sales": 60 },
{ "date": "2022", "profit": 50, "sales": 100 },
{ "date": "2023", "profit": 40, "sales": 80 }
]
}#堆叠柱状图
堆叠柱状图
{
"chartType": "column",
"dataset": [
{ "date": "2019", "profit": 10, "sales": 20 },
{ "date": "2020", "profit": 30, "sales": 60 },
{ "date": "2021", "profit": 30, "sales": 60 },
{ "date": "2022", "profit": 50, "sales": 100 },
{ "date": "2023", "profit": 40, "sales": 80 }
]
}#并列柱状图
并列柱状图
{
"chartType": "columnParallel",
"dataset": [
{ "date": "2019", "profit": 10, "sales": 20 },
{ "date": "2020", "profit": 30, "sales": 60 },
{ "date": "2021", "profit": 30, "sales": 60 },
{ "date": "2022", "profit": 50, "sales": 100 },
{ "date": "2023", "profit": 40, "sales": 80 }
]
}#百分比柱状图
百分比柱状图
{
"chartType": "columnPercent",
"dataset": [
{ "date": "2019", "profit": 10, "sales": 20 },
{ "date": "2020", "profit": 30, "sales": 60 },
{ "date": "2021", "profit": 30, "sales": 60 },
{ "date": "2022", "profit": 50, "sales": 100 },
{ "date": "2023", "profit": 40, "sales": 80 }
]
}#条形图
条形图
{
"chartType": "bar",
"dataset": [
{ "date": "2019", "profit": 10, "sales": 20 },
{ "date": "2020", "profit": 30, "sales": 60 },
{ "date": "2021", "profit": 30, "sales": 60 },
{ "date": "2022", "profit": 50, "sales": 100 },
{ "date": "2023", "profit": 40, "sales": 80 }
]
}#并列条形图
并列条形图
{
"chartType": "barParallel",
"dataset": [
{ "date": "2019", "profit": 10, "sales": 20 },
{ "date": "2020", "profit": 30, "sales": 60 },
{ "date": "2021", "profit": 30, "sales": 60 },
{ "date": "2022", "profit": 50, "sales": 100 },
{ "date": "2023", "profit": 40, "sales": 80 }
]
}#百分比条形图
百分比条形图
{
"chartType": "barPercent",
"dataset": [
{ "date": "2019", "profit": 10, "sales": 20 },
{ "date": "2020", "profit": 30, "sales": 60 },
{ "date": "2021", "profit": 30, "sales": 60 },
{ "date": "2022", "profit": 50, "sales": 100 },
{ "date": "2023", "profit": 40, "sales": 80 }
]
}#堆叠面积图
堆叠面积图
{
"chartType": "area",
"dataset": [
{ "date": "2019", "profit": 10, "sales": 20 },
{ "date": "2020", "profit": 30, "sales": 60 },
{ "date": "2021", "profit": 30, "sales": 60 },
{ "date": "2022", "profit": 50, "sales": 100 },
{ "date": "2023", "profit": 40, "sales": 80 }
]
}#百分比面积图
百分比面积图
{
"chartType": "areaPercent",
"dataset": [
{ "date": "2019", "profit": 10, "sales": 20 },
{ "date": "2020", "profit": 30, "sales": 60 },
{ "date": "2021", "profit": 30, "sales": 60 },
{ "date": "2022", "profit": 50, "sales": 100 },
{ "date": "2023", "profit": 40, "sales": 80 }
]
}#散点图
export const ScatterChart = memo(() => {
const vseed: VSeed = {
chartType: 'scatter',
dataset: [
{ date: '2019', profit: 10, sales: 20 },
{ date: '2020', profit: 30, sales: 60 },
{ date: '2021', profit: 30, sales: 60 },
{ date: '2022', profit: 50, sales: 100 },
{ date: '2023', profit: 200, sales: 80 },
],
measures: [
{
id: 'sales',
alias: '销售额',
},
{
id: 'profit',
alias: '利润',
},
],
dimensions: [
{
id: 'date',
alias: '日期',
},
],
label: {
enable: false,
},
}
return <VChartRender vseed={vseed} />
})#Polar
#饼图
饼图
{
"chartType": "pie",
"dataset": [
{ "date": "2019", "profit": 10, "sales": 20 },
{ "date": "2020", "profit": 30, "sales": 60 },
{ "date": "2021", "profit": 30, "sales": 60 },
{ "date": "2022", "profit": 50, "sales": 100 },
{ "date": "2023", "profit": 40, "sales": 80 }
]
}#环形图
{
"chartType": "donut",
"dataset": [
{ "date": "2019", "profit": 10, "sales": 20 },
{ "date": "2020", "profit": 30, "sales": 60 },
{ "date": "2021", "profit": 30, "sales": 60 },
{ "date": "2022", "profit": 50, "sales": 100 },
{ "date": "2023", "profit": 40, "sales": 80 }
]
}#玫瑰图
玫瑰图
export const RoseChart = memo(() => {
const vseed: VSeed = {
chartType: 'rose',
dataset: [
{ date: '2023', profit: 40 },
{ date: '2022', profit: 50 },
{ date: '2021', profit: 25 },
{ date: '2020', profit: 30 },
{ date: '2019', profit: 10 },
],
}
return <VChartRender vseed={vseed} />
})#雷达图
雷达图
export const RadarChart = memo(() => {
const vseed: VSeed = {
chartType: 'radar',
dataset: [{ profit: 10, sales: 20, count: 50, rateOfReturn: 1 }],
}
return <VChartRender vseed={vseed} />
})#堆叠玫瑰图
堆叠玫瑰图
export const StackedRoseChart = memo(() => {
const vseed: VSeed = {
chartType: 'rose',
dataset: [
{ date: '2019', profit: 10, sales: 20 },
{ date: '2020', profit: 30, sales: 60 },
{ date: '2021', profit: 30, sales: 60 },
{ date: '2022', profit: 50, sales: 100 },
{ date: '2023', profit: 40, sales: 80 },
],
}
return <VChartRender vseed={vseed} />
})#并列玫瑰图
分组玫瑰图
{
"chartType": "roseParallel",
"dataset": [
{ "date": "2019", "profit": 10, "sales": 20 },
{ "date": "2020", "profit": 30, "sales": 60 },
{ "date": "2021", "profit": 30, "sales": 60 },
{ "date": "2022", "profit": 50, "sales": 100 },
{ "date": "2023", "profit": 40, "sales": 80 }
]
}#Other
#热力图
export const HeatmapChart = memo(() => {
const vseed: VSeed = {
chartType: 'heatmap',
dataset: [
{
type: 'A',
subType: 'a',
value: 98,
},
{
type: 'A',
subType: 'b',
value: 71,
},
{
type: 'A',
subType: 'c',
value: 22,
},
{
type: 'A',
subType: 'd',
value: 49,
},
{
type: 'A',
subType: 'e',
value: 92,
},
{
type: 'B',
subType: 'a',
value: 85,
},
{
type: 'B',
subType: 'b',
value: 45,
},
{
type: 'B',
subType: 'c',
value: 19,
},
{
type: 'B',
subType: 'd',
value: 58,
},
{
type: 'B',
subType: 'e',
value: 26,
},
{
type: 'C',
subType: 'a',
value: 44,
},
{
type: 'C',
subType: 'b',
value: 23,
},
{
type: 'C',
subType: 'c',
value: 6,
},
{
type: 'C',
subType: 'd',
value: 42,
},
{
type: 'C',
subType: 'e',
value: 27,
},
{
type: 'D',
subType: 'a',
value: 79,
},
{
type: 'D',
subType: 'b',
value: 89,
},
{
type: 'D',
subType: 'c',
value: 65,
},
{
type: 'D',
subType: 'd',
value: 56,
},
{
type: 'D',
subType: 'e',
value: 1,
},
{
type: 'E',
subType: 'a',
value: 59,
},
{
type: 'E',
subType: 'b',
value: 94,
},
{
type: 'E',
subType: 'c',
value: 45,
},
{
type: 'E',
subType: 'd',
value: 80,
},
{
type: 'E',
subType: 'e',
value: 47,
},
],
}
return <VChartRender vseed={vseed} />
})#漏斗图
export const FunnelChart = memo(() => {
const vseed: VSeed = {
chartType: 'funnel',
dataset: [
{ date: '2022', profit: 100, sales: 100 },
{ date: '2023', profit: 80, sales: 80 },
{ date: '2020', profit: 60, sales: 60 },
{ date: '2021', profit: 40, sales: 40 },
{ date: '2019', profit: 20, sales: 20 },
],
}
return <VChartRender vseed={vseed} />
})