diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 18369420bf..246e4fa7b0 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -44,10 +44,30 @@ jobs: - name: Apply prereleaseName run: node common/scripts/apply-release-version.js ${{ steps.semver_parser.outputs.pre_release_name }} ${{ steps.semver_parser.outputs.main }} - - name: Build packages + - name: Build vutils-extension && vchart env: NODE_OPTIONS: '--max_old_space_size=4096' - run: node common/scripts/install-run-rush.js build --only tag:package + run: node common/scripts/install-run-rush.js build --to @visactor/vchart + + - name: Build vchart-extension + env: + NODE_OPTIONS: '--max_old_space_size=4096' + run: node common/scripts/install-run-rush.js build --only @visactor/vchart-extension + + - name: Build react-vchart + env: + NODE_OPTIONS: '--max_old_space_size=4096' + run: node common/scripts/install-run-rush.js build --only @visactor/react-vchart + + - name: Build openinula-vchart + env: + NODE_OPTIONS: '--max_old_space_size=4096' + run: node common/scripts/install-run-rush.js build --only @visactor/openinula-vchart + + - name: Build taro-vchart + env: + NODE_OPTIONS: '--max_old_space_size=4096' + run: node common/scripts/install-run-rush.js build --only @visactor/taro-vchart - name: Build lark-vchart env: diff --git a/docs/assets/examples/zh/chart-3d/scatter3d.md b/docs/assets/examples/zh/chart-3d/scatter3d.md index afb9109a2b..3524cb70d4 100644 --- a/docs/assets/examples/zh/chart-3d/scatter3d.md +++ b/docs/assets/examples/zh/chart-3d/scatter3d.md @@ -46,7 +46,6 @@ if (VCHART_MODULE.register3DPlugin) { } /** --Remove the above code when using in business-- */ -VCHART_MODULE.register3DPlugin(); const data = [ { continent: 'Americas', Country: 'Argentina', LifeExpectancy: 75.32, GDP: 12779.37964, Population: 40301927 }, { continent: 'Americas', Country: 'Brazil', LifeExpectancy: 72.39, GDP: 9065.800825, Population: 190010647 }, diff --git a/packages/vchart-extension/src/charts/sequence-scatter-link/utils.ts b/packages/vchart-extension/src/charts/sequence-scatter-link/utils.ts deleted file mode 100644 index c35a911a06..0000000000 --- a/packages/vchart-extension/src/charts/sequence-scatter-link/utils.ts +++ /dev/null @@ -1,129 +0,0 @@ -import trainingData1 from '../../../__tests__/runtime/browser/data/sequence-scatter/Training_process1/data.json'; -import trainingInfo1 from '../../../__tests__/runtime/browser/data/sequence-scatter/Training_process1/info.json'; -import trainingData2 from '../../../__tests__/runtime/browser/data/sequence-scatter/Training_process2/data.json'; -import trainingInfo2 from '../../../__tests__/runtime/browser/data/sequence-scatter/Training_process2/info.json'; -import type { ISequenceScatterLinkData, OriginalData, TrainingInfo, Endpoint } from './interface'; - -export function getSeqScatterChartData(task_type: string) { - // get basic settings - const { scope, label_index, label_text, label_color_dict } = getBasicSettings(task_type); - - // construct chart data - const chartData = constructChartData(task_type, label_index, label_text, label_color_dict); - - return { chartData, scope, label_color_dict }; -} - -/** - * 获取基本设置,包括画布范围、标签、标签文本和标签颜色 - */ -function getBasicSettings(task_type: string) { - const training_info: TrainingInfo = task_type === 'neighborhood' ? trainingInfo1 : trainingInfo2; - const scope = task_type === 'neighborhood' ? [-9, -9, 6, 6] : [-8, -8, 8, 8]; - - const label_index = training_info.label_index; - const label_text = training_info.label_text; - const label_color_list = training_info.label_color; - const label_color_dict: { [key: string]: string } = {}; // text -> rgb - - for (let i = 0; i < label_color_list.length; i++) { - const c = label_color_list[i]; - label_color_dict[label_text[i]] = `rgb(${c[0]},${c[1]},${c[2]})`; - } - - return { scope, label_index, label_text, label_color_dict }; -} - -/** - * 构造图表数据,包括节点和边 - */ -function constructChartData( - task_type: string, - label_index: number[], - label_text: string[], - label_color_dict: { [key: string]: string } -) { - const original_data: OriginalData = task_type === 'neighborhood' ? trainingData1 : (trainingData2 as OriginalData); - const chartData: ISequenceScatterLinkData = {}; - - Object.keys(original_data).forEach(epoch => { - chartData[epoch] = { - nodes: [], - edges: [] - }; - - // fill in nodes - original_data[epoch].projection.forEach((pos, id) => { - let conf = 1; - let pred = label_text[label_index[id]]; - if (task_type === 'classification') { - conf = original_data[epoch].confidence[id]; - pred = label_text[original_data[epoch].prediction[id]]; - } - - chartData[epoch].nodes.push({ - id: id, // unique identification of a point - x: pos[0], - y: pos[1], - label: label_text[label_index[id]], - prediction: pred, - confidence: conf - }); - }); - - // fill in edges - let intra_similarity: number[][]; - let inter_similarity: number[][]; - if (task_type === 'neighborhood') { - intra_similarity = original_data[epoch].intra_similarity; - inter_similarity = original_data[epoch].inter_similarity; - - let i = 0; - original_data[epoch].projection.forEach((pos, id) => { - intra_similarity[id].forEach(neighbor => { - chartData[epoch].edges.push({ - id: i, // unique identification of an edge - x0: pos[0], - y0: pos[1], - x1: original_data[epoch].projection[neighbor][0], - y1: original_data[epoch].projection[neighbor][1], - type: 'same_type', - color: label_color_dict[label_text[label_index[id]]] - }); - i++; - }); - inter_similarity[id].forEach(neighbor => { - chartData[epoch].edges.push({ - id: i, // unique identification of an edge - x0: pos[0], - y0: pos[1], - x1: original_data[epoch].projection[neighbor][0], - y1: original_data[epoch].projection[neighbor][1], - type: 'cross_type', - color: label_color_dict[label_text[label_index[neighbor]]] - }); - i++; - }); - }); - } - }); - - return chartData; -} - -/** - * 选择边,根据给定的x和y坐标,返回所有与该点相关的边,构造边的端点用于绘制线段 - */ -export function selectEdges(chartData: ISequenceScatterLinkData, x: number, y: number) { - const endpoints: Endpoint[] = []; - Object.keys(chartData).forEach(iter => { - const edges = chartData[iter].edges; - edges.forEach(edge => { - if (x === edge.x0 && y === edge.y0) { - endpoints.push({ edgeId: edge.id, x: edge.x0, y: edge.y0, type: edge.type, color: edge.color }); - endpoints.push({ edgeId: edge.id, x: edge.x1, y: edge.y1, type: edge.type, color: edge.color }); - } - }); - }); - return endpoints; -}