mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-09-10 13:29:35 +00:00
fix(web): fix inconsistency between model recommendation charts and display charts (#1615)
Co-authored-by: hzh97 <2976151305@qq.com> Co-authored-by: aries_ckt <916701291@qq.com>
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
import { Datum, FieldInfo } from '@antv/ava';
|
||||
import { hasSubset, intersects } from '../advisor/utils';
|
||||
import { uniq } from 'lodash';
|
||||
|
||||
type BasicDataPropertyForAdvice = any;
|
||||
|
||||
/**
|
||||
@@ -14,3 +18,35 @@ export function processDateEncode(field: string, dataProps: BasicDataPropertyFor
|
||||
}
|
||||
return field;
|
||||
}
|
||||
|
||||
export function findOrdinalField(fields: FieldInfo[]) {
|
||||
return fields.find((field) => field.levelOfMeasurements && intersects(field.levelOfMeasurements, ['Time', 'Ordinal']));
|
||||
}
|
||||
|
||||
export function findNominalField(fields: FieldInfo[]) {
|
||||
return fields.find((field) => field.levelOfMeasurements && hasSubset(field.levelOfMeasurements, ['Nominal']));
|
||||
}
|
||||
|
||||
// 识别 x 轴是否只有一条数据(绘制的折线图是否只有一个点)
|
||||
export const isUniqueXValue = ({ data, xField }: { xField: string; data: Datum[] }): boolean => {
|
||||
const uniqXValues = uniq(data.map((datum) => datum[xField]));
|
||||
return uniqXValues.length <= 1;
|
||||
};
|
||||
|
||||
/** 获取线宽:当只有一条数据时,折线图需要特殊设置线宽,否则仅绘制 1px,看不见 */
|
||||
export const getLineSize = (
|
||||
datum: Datum,
|
||||
allData: Datum[],
|
||||
fields: {
|
||||
field4Split?: FieldInfo;
|
||||
field4X?: FieldInfo;
|
||||
},
|
||||
) => {
|
||||
const { field4Split, field4X } = fields;
|
||||
if (field4Split?.name && field4X?.name) {
|
||||
const seriesValue = datum[field4Split.name];
|
||||
const splitData = allData.filter((item) => field4Split.name && item[field4Split.name] === seriesValue);
|
||||
return isUniqueXValue({ data: splitData, xField: field4X.name }) ? 5 : undefined;
|
||||
}
|
||||
return field4X?.name && isUniqueXValue({ data: allData, xField: field4X.name }) ? 5 : undefined;
|
||||
};
|
||||
|
Reference in New Issue
Block a user