From 37e596f172f83a2b9f941e307c5b9113186fce2e Mon Sep 17 00:00:00 2001 From: Daniel Chang Date: Mon, 29 Jul 2024 16:44:22 -0400 Subject: [PATCH] chart tweaks (#4306) --- .../tera-calibrate-ciemss-drilldown.vue | 2 +- .../tera-calibrate-node-ciemss.vue | 13 +++---- .../tera-optimize-ciemss-drilldown.vue | 14 +++++--- .../tera-optimize-ciemss-node.vue | 20 ++++++++--- .../simulate-ciemss/tera-simulate-ciemss.vue | 2 +- .../tera-simulate-node-ciemss.vue | 12 ++++--- .../service/data/SimulationService.java | 33 +++++++++-------- .../notification/NotificationService.java | 6 ++-- .../service/data/SimulationServiceTests.java | 36 +++++++++---------- 9 files changed, 78 insertions(+), 60 deletions(-) diff --git a/packages/client/hmi-client/src/components/workflow/ops/calibrate-ciemss/tera-calibrate-ciemss-drilldown.vue b/packages/client/hmi-client/src/components/workflow/ops/calibrate-ciemss/tera-calibrate-ciemss-drilldown.vue index 9608cd277a..61004aac84 100644 --- a/packages/client/hmi-client/src/components/workflow/ops/calibrate-ciemss/tera-calibrate-ciemss-drilldown.vue +++ b/packages/client/hmi-client/src/components/workflow/ops/calibrate-ciemss/tera-calibrate-ciemss-drilldown.vue @@ -306,7 +306,7 @@ const preparedCharts = computed(() => { groupField: 'sample_id' }, { - title: `${config.join(',')}`, + title: '', width: chartSize.value.width, height: chartSize.value.height, legend: true, diff --git a/packages/client/hmi-client/src/components/workflow/ops/calibrate-ciemss/tera-calibrate-node-ciemss.vue b/packages/client/hmi-client/src/components/workflow/ops/calibrate-ciemss/tera-calibrate-node-ciemss.vue index ca6a2ce580..6a503255f3 100644 --- a/packages/client/hmi-client/src/components/workflow/ops/calibrate-ciemss/tera-calibrate-node-ciemss.vue +++ b/packages/client/hmi-client/src/components/workflow/ops/calibrate-ciemss/tera-calibrate-node-ciemss.vue @@ -41,7 +41,7 @@ import { DataArray } from '@/services/models/simulation-service'; import { getModelConfigurationById, createModelConfiguration } from '@/services/model-configurations'; -import { getModelByModelConfigurationId } from '@/services/model'; +import { getModelByModelConfigurationId, getUnitsFromModelParts } from '@/services/model'; import { renderLossGraph, setupDatasetInput } from '@/services/calibrate-workflow'; import { nodeMetadata, nodeOutputLabel } from '@/components/workflow/util'; import { logger } from '@/utils/logger'; @@ -62,6 +62,8 @@ const emit = defineEmits(['open-drilldown', 'update-state', 'append-output']); const modelConfigId = computed(() => props.node.inputs[0].value?.[0]); const model = ref(null); +const modelVarUnits = ref<{ [key: string]: string }>({}); + const runResult = ref([]); const runResultPre = ref([]); const runResultSummary = ref([]); @@ -142,8 +144,6 @@ const preparedCharts = computed(() => { } }); - const xAxisTitle = model.value?.semantics?.ode.time?.units?.expression ?? 'time'; - return createForecastChart( { dataset: result, @@ -162,13 +162,13 @@ const preparedCharts = computed(() => { timeField: datasetTimeField as string }, { - title: `${config.join(',')}`, + title: '', width: 180, height: 120, legend: true, translationMap: reverseMap, - xAxisTitle, - yAxisTitle: `${config.join(',')}`, + xAxisTitle: modelVarUnits.value._time || 'Time', + yAxisTitle: _.uniq(config.map((v) => modelVarUnits.value[v]).filter((v) => !!v)).join(',') || '', colorscheme: ['#AAB3C6', '#1B8073'] } ); @@ -237,6 +237,7 @@ watch( const id = input.value[0]; model.value = await getModelByModelConfigurationId(id); + modelVarUnits.value = getUnitsFromModelParts(model.value as Model); }, { immediate: true } ); diff --git a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue index ad81d0adc7..060408a6d1 100644 --- a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue +++ b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-drilldown.vue @@ -894,7 +894,10 @@ const preparedForecastCharts = computed(() => { // intervention chart spec charts.interventionCharts = knobs.value.selectedInterventionVariables.map((variable) => { - chartOptions.translationMap = translationMap(variable); + const options = _.cloneDeep(chartOptions); + options.translationMap = translationMap(variable); + options.yAxisTitle = getUnit(variable); + const forecastChart = createForecastChart( { dataset: result, @@ -908,7 +911,7 @@ const preparedForecastCharts = computed(() => { timeField: 'timepoint_id' }, null, - chartOptions + options ); // add intervention annotations (rules and text) forecastChart.layer.push(...createInterventionChartMarkers(preProcessedInterventionsData.value[variable])); @@ -917,7 +920,10 @@ const preparedForecastCharts = computed(() => { // simulation chart spec charts.simulationCharts = knobs.value.selectedSimulationVariables.map((variable) => { - chartOptions.translationMap = translationMap(variable); + const options = _.cloneDeep(chartOptions); + options.translationMap = translationMap(variable); + options.yAxisTitle = getUnit(variable); + return createForecastChart( { dataset: result, @@ -931,7 +937,7 @@ const preparedForecastCharts = computed(() => { timeField: 'timepoint_id' }, null, - chartOptions + options ); }); return charts; diff --git a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-node.vue b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-node.vue index 2d5fcb6362..b4efc536a4 100644 --- a/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-node.vue +++ b/packages/client/hmi-client/src/components/workflow/ops/optimize-ciemss/tera-optimize-ciemss-node.vue @@ -1,6 +1,6 @@