From fbb69029c01f68fa7013d84c1a52d9eb40d3a42c Mon Sep 17 00:00:00 2001 From: tobiglaser <76131623+tobiglaser@users.noreply.github.com> Date: Wed, 7 May 2025 13:36:31 +0200 Subject: [PATCH] better logarithmic scaling --- src/control.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/control.cpp b/src/control.cpp index 382baba..92bdd58 100644 --- a/src/control.cpp +++ b/src/control.cpp @@ -507,7 +507,13 @@ void Control::resizeAxes(int plot) { if (logAxis) { - axis->setRange(std::max(0.0000001, 0.8 * minX), 1.2 * maxX); + minX = std::max(minX, 1E-16); + maxX = std::max(maxX, 1E-15); + + double lower = floor(log10(minX)); + double upper = ceil(log10(maxX)); + + axis->setRange(pow(10, lower), pow(10, upper)); } else { @@ -519,7 +525,13 @@ void Control::resizeAxes(int plot) { if (logAxis) { - axis->setRange(std::max(0.0000001, 0.8 * minY), 1.2 * maxY); + minY = std::max(minY, 1E-16); + maxY = std::max(maxY, 1E-15); + + double lower = floor(log10(minY)); + double upper = ceil(log10(maxY)); + + axis->setRange(pow(10, lower), pow(10, upper)); } else { @@ -618,7 +630,7 @@ void Control::setPlotScale(int plot, int x, int y) QLogValueAxis* newLogAxis = new QLogValueAxis(); newLogAxis->setBase(10.0); newLogAxis->setMax(std::max(linAxis->max(), 0.1)); - newLogAxis->setMin(std::max(linAxis->min(), 0.000001)); + newLogAxis->setMin(std::max(linAxis->min(), (double)(1.0E-16))); newLogAxis->setVisible(linAxis->isVisible()); newLogAxis->setTitleFont(linAxis->titleFont()); newLogAxis->setTitleText(linAxis->titleText()); -- GitLab