@alicloud/cloud-charts
Version:

282 lines (277 loc) • 8.23 kB
JavaScript
"use strict";
exports.__esModule = true;
exports["default"] = exports.ExceedJudgeType = exports.CalculationType = void 0;
/**
* 【数据量计算方法】
*
* 常规计算COMMON:{x, y, type, dodge, facet} 不同type单独统计,取最大值,忽略dodge与facet
* 柱状图
* 折线图
* 饼图
* 玫瑰图
* 雷达图
* 箱型图
*
* 直接计算个数COUNT: 直接取数组长度
* 烛形图
* 漏斗图
* 散点图
*
* 特殊计算SPECIAL: [{name:'xxx',data:[], type: 'xxx', dodge: 'xxx'}] 取最大值
* 线柱图
* 线点图
*
* 分层计算LEVEL: 计算每层个数,取最外层的数量
* 多重饼图(多重环图)
*
* 不考虑大数据情况:
* 热力图(色块图)
* 层次图
* 直方图
* 地图
* 分箱图
* 桑基图
* 树图
*/
var CalculationType = {
COMMON: 'COMMON',
COUNT: 'COUNT',
SPECIAL: 'SPECIAL',
LEVEL: 'LEVEL'
};
/**
* 【数据量超标判断方法】
*
* 1.笛卡尔坐标系中,只考虑单坐标轴的长度LENGTH:宽度/数据个数<阈值(需判断是x轴还是y轴)
*
* 2.笛卡尔坐标系中,考虑整个坐标轴的面积AREA:宽度*高度/数据个数<阈值
*
* 3.极坐标系POLAR:半径<阈值
*
* 4.考虑数量NUMBER:数据个数>阈值
*
* 柱状图: 1 4
* 折线图: 1
* 烛形图: 1 4
* 线柱图: 1 4
* 线点图: 1 2
* 箱型图: 1 4
* 散点图: 2
* 饼图: 3 4
* 玫瑰图: 3 4
* 雷达图: 3 4
* 多重饼图: 3 4
* 漏斗图: 1 4
*
*/
exports.CalculationType = CalculationType;
var ExceedJudgeType = {
LEGNTH: 'LENGTH',
AREA: 'AREA',
POLAR: 'POLAR',
NUMBER: 'NUMBER'
};
exports.ExceedJudgeType = ExceedJudgeType;
var BigDataType = {
// 柱状图
G2Bar: {
calculation: CalculationType.COMMON,
// 计算数据量的方式
exceedJudge: [// 判断数据量是否超标的方式,可能有多个
{
type: ExceedJudgeType.LEGNTH,
threshold: 15,
directionConfig: 'column',
// 是否水平方向的判断字段
message: '该柱图柱子过于密集,会影响展示效果,建议减少数据量或加大图表宽度。推荐开启缩略轴slider配置或滚动条scrollbar配置,问题码#05-2'
}, {
type: ExceedJudgeType.NUMBER,
threshold: 30,
message: '该柱图柱子数量过多,不利于数据间的比较,建议减少数据量或加大图表宽度。推荐开启缩略轴slider配置或滚动条scrollbar配置,如轴文本太长也可开启autoEllipsis配置项。问题码#05-2'
}],
specialCases: [// 极坐标柱状图及玉玦图
{
config: {
polar: true
},
calculation: CalculationType.COMMON,
exceedJudge: [
/*
{
type: ExceedJudgeType.POLAR,
threshold: 100,
message: '该极坐标柱状图数据过于密集,会影响展示效果,建议加大图表半径',
},
*/
{
type: ExceedJudgeType.NUMBER,
threshold: 10,
message: '该极坐标柱状图柱子过多,不利于数据间的比较,建议减少数据量或改用其他图表'
}]
}],
filterConfig: {
symbol: false,
spline: false // slider: {
// open: true, // 是否开启缩略轴
// coef: 30, // 控制缩略轴长度的系数
// },
}
},
// 箱型图
G2Box: {
calculation: CalculationType.COMMON,
exceedJudge: [{
type: ExceedJudgeType.LEGNTH,
threshold: 50,
message: '该箱型图数据过于密集,会影响展示效果,建议减少数据量或加大图表宽度'
}, {
type: ExceedJudgeType.NUMBER,
threshold: 20,
message: '该箱型图数据量过多,不利于数据间的比较,建议减少数据量或改用其他图表'
}]
},
// 烛形图
G2Wcandlestick: {
calculation: CalculationType.COUNT,
exceedJudge: [{
type: ExceedJudgeType.LEGNTH,
threshold: 8,
message: '该烛形图数据过于密集,会影响展示效果,建议减少数据量或加大图表宽度'
}, {
type: ExceedJudgeType.NUMBER,
threshold: 100,
message: '该烛形图数据量过多,会影响可读性,建议减少数据量或改用其他图表'
}]
},
// 漏斗图
G2Funnel: {
calculation: CalculationType.COUNT,
exceedJudge: [{
type: ExceedJudgeType.LEGNTH,
threshold: 30,
directionConfig: 'direction',
message: '该漏斗图数据过于密集,会影响展示效果,建议减少数据量或加大图表尺寸'
}, {
type: ExceedJudgeType.NUMBER,
threshold: 10,
message: '该漏斗图数据量过多,会影响可读性,建议减少数据量或改用其他图表'
}]
},
// 线图
G2Line: {
calculation: CalculationType.COMMON,
exceedJudge: [{
type: ExceedJudgeType.LEGNTH,
// 一个像素超多4个数据点
threshold: 4,
message: '该线图数据过于密集,会影响展示效果,建议减少数据量或加大图表宽度。已自动关闭标记点、圆滑曲线、面积图等配置项,若要关闭可加force配置项。推荐开启缩略轴slider配置,问题码#05-1'
}],
// 需要过滤的配置项
// 图形/度量/坐标轴/提示等等
filterConfig: {
symbol: false,
spline: false,
area: false // slider: {
// open: true,
// coef: 100,
// },
}
},
// 线柱图
G2LineBar: {
calculation: CalculationType.SPECIAL,
exceedJudge: [{
type: ExceedJudgeType.LEGNTH,
threshold: 15,
message: '该线柱图数据过于密集,会影响展示效果,建议减少数据量或加大图表宽度'
}]
},
// 线点图
G2LineScatter: {
calculation: CalculationType.SPECIAL,
exceedJudge: [{
type: ExceedJudgeType.LEGNTH,
threshold: 10,
message: '该线点图数据过于密集,会影响展示效果,建议减少数据量或加大图表宽度'
}]
},
// 多重饼图
G2MultiPie: {
calculation: CalculationType.LEVEL,
exceedJudge: [
/*
{
type: ExceedJudgeType.POLAR,
threshold: 100,
message: '该多重饼图数据过于密集,会影响展示效果,建议加大图表半径',
},
*/
{
type: ExceedJudgeType.NUMBER,
threshold: 20,
message: '该多重饼图分块过多,会影响可读性,建议减少数据量或改用其他图表'
}]
},
// 玫瑰图
G2Nightingale: {
calculation: CalculationType.COMMON,
exceedJudge: [
/*
{
type: ExceedJudgeType.POLAR,
threshold: 100,
message: '该玫瑰图数据过于密集,会影响展示效果,建议减少数据量或加大图表半径',
},
*/
{
type: ExceedJudgeType.NUMBER,
threshold: 15,
message: '该玫瑰图分块过多,会影响可读性,建议减少数据量或改用其他图表'
}]
},
// 饼图
G2Pie: {
calculation: CalculationType.COMMON,
exceedJudge: [
/*
{
type: ExceedJudgeType.POLAR,
threshold: 80,
message: '该饼图数据过于密集,会影响展示效果,建议减少数据量或加大图表半径',
},
*/
{
type: ExceedJudgeType.NUMBER,
threshold: 10,
message: '该饼图分块过多,会影响可读性,推荐开启autoFormat进行数据收敛,问题码#05-3'
}]
},
// 雷达图
G2Radar: {
calculation: CalculationType.COMMON,
exceedJudge: [
/*
{
type: ExceedJudgeType.POLAR,
threshold: 100,
message: '该雷达图数据过于密集,会影响展示效果,建议减少数据量或加大图表半径',
},
*/
{
type: ExceedJudgeType.NUMBER,
threshold: 30,
message: '该雷达图分块过多,会影响可读性,建议减少数据量或改用其他图表'
}]
},
// 散点图
G2Scatter: {
calculation: CalculationType.COUNT,
exceedJudge: [{
type: ExceedJudgeType.AREA,
threshold: 300,
message: '该散点图数据过于密集,会影响展示效果,建议减少数据量或加大图表尺寸'
}]
}
};
var _default = BigDataType;
exports["default"] = _default;