diff --git a/ApplicationLibCode/Application/RiaNumberFormat.cpp b/ApplicationLibCode/Application/RiaNumberFormat.cpp index 5b44511480..af220b85b1 100644 --- a/ApplicationLibCode/Application/RiaNumberFormat.cpp +++ b/ApplicationLibCode/Application/RiaNumberFormat.cpp @@ -51,3 +51,19 @@ QString RiaNumberFormat::valueToText( double value, RiaNumberFormat::NumberForma return valueString; } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +QString RiaNumberFormat::sprintfFormat( RiaNumberFormat::NumberFormatType numberFormat, int precision ) +{ + switch ( numberFormat ) + { + case RiaNumberFormat::NumberFormatType::FIXED: + return QString( "%.%1f" ).arg( precision ); + case RiaNumberFormat::NumberFormatType::SCIENTIFIC: + return QString( "%.%1e" ).arg( precision ); + default: + return QString( "%.%1g" ).arg( precision ); + } +} diff --git a/ApplicationLibCode/Application/RiaNumberFormat.h b/ApplicationLibCode/Application/RiaNumberFormat.h index 36322fa68b..2fd1deb760 100644 --- a/ApplicationLibCode/Application/RiaNumberFormat.h +++ b/ApplicationLibCode/Application/RiaNumberFormat.h @@ -34,4 +34,5 @@ public: }; static QString valueToText( double value, RiaNumberFormat::NumberFormatType numberFormat, int precision ); + static QString sprintfFormat( RiaNumberFormat::NumberFormatType numberFormat, int precision ); }; diff --git a/ApplicationLibCode/ProjectDataModel/RimStatisticsPlot.cpp b/ApplicationLibCode/ProjectDataModel/RimStatisticsPlot.cpp index 28d0a72d2e..8aa07df054 100644 --- a/ApplicationLibCode/ProjectDataModel/RimStatisticsPlot.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimStatisticsPlot.cpp @@ -81,6 +81,21 @@ RimStatisticsPlot::RimStatisticsPlot() CAF_PDM_InitFieldNoDefault( &m_histogramFrequencyType, "HistogramFrequencyType", "Frequency", "", "", "" ); + CAF_PDM_InitField( &m_precision, + "Precision", + 4, + "Significant Digits", + "", + "The number of significant digits displayed in the legend numbers", + "" ); + CAF_PDM_InitField( &m_tickNumberFormat, + "TickNumberFormat", + caf::AppEnum( RiaNumberFormat::NumberFormatType::FIXED ), + "Number format", + "", + "", + "" ); + m_plotLegendsHorizontal.uiCapability()->setUiHidden( true ); setDeletable( true ); @@ -232,6 +247,8 @@ void RimStatisticsPlot::uiOrderingForHistogram( QString uiConfigName, caf::PdmUi histogramGroup->add( &m_histogramBarColor ); histogramGroup->add( &m_histogramGapWidth ); histogramGroup->add( &m_histogramFrequencyType ); + histogramGroup->add( &m_precision ); + histogramGroup->add( &m_tickNumberFormat ); } //-------------------------------------------------------------------------------------------------- @@ -293,10 +310,12 @@ void RimStatisticsPlot::updatePlots() QValueAxis* axisX = new QValueAxis(); axisX->setRange( histogramData.min - xAxisExtension, histogramData.max + xAxisExtension ); + axisX->setLabelFormat( RiaNumberFormat::sprintfFormat( m_tickNumberFormat(), m_precision ) ); chart->addAxis( axisX, Qt::AlignBottom ); QValueAxis* axisY = new QValueAxis(); axisY->setRange( minValue, maxValue ); + axisY->setLabelFormat( RiaNumberFormat::sprintfFormat( m_tickNumberFormat(), m_precision ) ); chart->addAxis( axisY, Qt::AlignLeft ); if ( !std::isinf( histogramData.p10 ) ) diff --git a/ApplicationLibCode/ProjectDataModel/RimStatisticsPlot.h b/ApplicationLibCode/ProjectDataModel/RimStatisticsPlot.h index e96b009edf..280af98901 100644 --- a/ApplicationLibCode/ProjectDataModel/RimStatisticsPlot.h +++ b/ApplicationLibCode/ProjectDataModel/RimStatisticsPlot.h @@ -19,6 +19,7 @@ #pragma once #include "RiaDefines.h" +#include "RiaNumberFormat.h" #include "RigHistogramData.h" @@ -89,9 +90,11 @@ private: protected: QPointer m_viewer; - caf::PdmField m_plotWindowTitle; - caf::PdmField m_numHistogramBins; - caf::PdmField m_histogramBarColor; - caf::PdmField m_histogramGapWidth; - caf::PdmField> m_histogramFrequencyType; + caf::PdmField m_plotWindowTitle; + caf::PdmField m_numHistogramBins; + caf::PdmField m_histogramBarColor; + caf::PdmField m_histogramGapWidth; + caf::PdmField> m_histogramFrequencyType; + caf::PdmField m_precision; + caf::PdmField> m_tickNumberFormat; };