diff --git a/gui/src/Visualization/VisualizationZoneWidget.cpp b/gui/src/Visualization/VisualizationZoneWidget.cpp index 8a5ee5e..b76e8df 100644 --- a/gui/src/Visualization/VisualizationZoneWidget.cpp +++ b/gui/src/Visualization/VisualizationZoneWidget.cpp @@ -188,8 +188,20 @@ VisualizationGraphWidget *VisualizationZoneWidget::createGraph(std::shared_ptraddGraph(graphWidget); graphWidget->addVariable(variable, range); - // TODO: get y using variable range - graphWidget->setYRange(SqpRange{-10, 10}); + + // get y using variable range + if (auto dataSeries = variable->dataSeries()) { + auto valuesBounds = dataSeries->valuesBounds(range.m_TStart, range.m_TEnd); + auto end = dataSeries->cend(); + if (valuesBounds.first != end && valuesBounds.second != end) { + auto rangeValue = [](const auto &value) { return std::isnan(value) ? 0. : value; }; + + auto minValue = rangeValue(valuesBounds.first->minValue()); + auto maxValue = rangeValue(valuesBounds.second->maxValue()); + + graphWidget->setYRange(SqpRange{minValue, maxValue}); + } + } return graphWidget; } diff --git a/plugins/amda/tests/TestAmdaAcquisition.cpp b/plugins/amda/tests/TestAmdaAcquisition.cpp index e9b9f1a..5df8fc8 100644 --- a/plugins/amda/tests/TestAmdaAcquisition.cpp +++ b/plugins/amda/tests/TestAmdaAcquisition.cpp @@ -45,7 +45,7 @@ bool compareDataSeries(std::shared_ptr candidate, SqpRange candidat if (candidateDS && referenceDS) { auto itRefs - = referenceDS->subData(candidateCacheRange.m_TStart, candidateCacheRange.m_TEnd); + = referenceDS->xAxisRange(candidateCacheRange.m_TStart, candidateCacheRange.m_TEnd); qDebug() << " DISTANCE" << std::distance(candidateDS->cbegin(), candidateDS->cend()) << std::distance(itRefs.first, itRefs.second);