diff --git a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp index a29fb4046f..eafc6d5ff0 100644 --- a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp +++ b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp @@ -320,54 +320,11 @@ void RimAnalysisPlot::onLoadDataAndUpdate() if ( m_plotWidget ) { - RiuGroupedBarChartBuilder chartBuilder( Qt::Horizontal ); + RiuGroupedBarChartBuilder chartBuilder; - chartBuilder.addBarEntry( "T1_The_red_Fox", "", "", std::numeric_limits::infinity(), "R1", "", 0.4 ); - chartBuilder.addBarEntry( "T1_The_red_Fox", "", "", std::numeric_limits::infinity(), "R2", "", 0.45 ); - chartBuilder.addBarEntry( "T1_The_red_Fox", "W1", "", std::numeric_limits::infinity(), "R1", "", 0.5 ); - chartBuilder.addBarEntry( "T1_The_red_Fox", "W1", "", std::numeric_limits::infinity(), "R2", "", 0.55 ); - chartBuilder.addBarEntry( "T1_The_red_Fox", "W3", "", std::numeric_limits::infinity(), "R1", "", 0.7 ); - chartBuilder.addBarEntry( "T1_The_red_Fox", "W3", "", std::numeric_limits::infinity(), "R2", "", 0.75 ); - chartBuilder.addBarEntry( "T1_The_red_Fox", "W2", "", std::numeric_limits::infinity(), "R1", "", 1.05 ); - chartBuilder.addBarEntry( "T1_The_red_Fox", "W2", "", std::numeric_limits::infinity(), "R2", "", 1.0 ); + buildTestPlot( chartBuilder ); - chartBuilder.addBarEntry( "T2", "W1", "", std::numeric_limits::infinity(), "R1", "", 1.5 ); - chartBuilder.addBarEntry( "T2", "W1", "", std::numeric_limits::infinity(), "R2", "", 1.5 ); - chartBuilder.addBarEntry( "T2", "W2", "", std::numeric_limits::infinity(), "R1", "", 2.0 ); - chartBuilder.addBarEntry( "T2", "W2", "", std::numeric_limits::infinity(), "R2", "", 2.0 ); - - chartBuilder.addBarEntry( "T3", "W1", "1", std::numeric_limits::infinity(), "R1", "", 1.5 ); - chartBuilder.addBarEntry( "T3", "W1", "2", std::numeric_limits::infinity(), "R2", "", 1.5 ); - chartBuilder.addBarEntry( "T3", "W2", "3", std::numeric_limits::infinity(), "R1", "", 2.0 ); - chartBuilder.addBarEntry( "T3", "W2", "4", std::numeric_limits::infinity(), "R1", "", 2.0 ); - chartBuilder.addBarEntry( "T3", "W2", "5", std::numeric_limits::infinity(), "R1", "", 2.0 ); - - chartBuilder.addBarEntry( "T4", "W1", "1", std::numeric_limits::infinity(), "R1", "", 1.5 ); - chartBuilder.addBarEntry( "T4", "W1", "2", std::numeric_limits::infinity(), "R2", "", 1.5 ); - chartBuilder.addBarEntry( "T4", "W2", "3", std::numeric_limits::infinity(), "R1", "", 2.0 ); - chartBuilder.addBarEntry( "T4", "W2", "4", std::numeric_limits::infinity(), "R2", "", 2.0 ); - chartBuilder.addBarEntry( "T4", "W1", "1", std::numeric_limits::infinity(), "R1", "", 1.6 ); - chartBuilder.addBarEntry( "T4", "W1", "2", std::numeric_limits::infinity(), "R2", "", 1.6 ); - chartBuilder.addBarEntry( "T4", "W2", "3", std::numeric_limits::infinity(), "R1", "", 2.6 ); - chartBuilder.addBarEntry( "T4", "W2", "4", std::numeric_limits::infinity(), "R2", "", -0.3 ); - - chartBuilder.addBarEntry( "T5", "", "", 1.5, "R3", "G1", 1.5 ); - chartBuilder.addBarEntry( "T5", "", "", 1.5, "R3", "G2", 1.5 ); - chartBuilder.addBarEntry( "T5", "", "", 2.0, "R3", "G3", 2.0 ); - chartBuilder.addBarEntry( "T5", "", "", 2.0, "R3", "G4", 2.0 ); - chartBuilder.addBarEntry( "T5", "", "", 1.6, "R3", "G5", 1.6 ); - chartBuilder.addBarEntry( "T5", "", "", 1.6, "R3", "G6", 1.6 ); - chartBuilder.addBarEntry( "T5", "", "", 2.6, "R3", "G7", 2.6 ); - chartBuilder.addBarEntry( "T5", "", "", -0.1, "R3", "G8", -0.1 ); - - chartBuilder.addBarEntry( "", "", "", 1.2, "", "A", 1.2 ); - chartBuilder.addBarEntry( "", "", "", 1.5, "", "B", 1.5 ); - chartBuilder.addBarEntry( "", "", "", 2.3, "", "C", 2.3 ); - chartBuilder.addBarEntry( "", "", "", 2.0, "", "D", 2.0 ); - chartBuilder.addBarEntry( "", "", "", 1.6, "", "E", 1.6 ); - chartBuilder.addBarEntry( "", "", "", 2.4, "", "F", -2.4 ); - - chartBuilder.addBarChartToPlot( m_plotWidget ); + chartBuilder.addBarChartToPlot( m_plotWidget, Qt::Horizontal ); if ( m_showPlotLegends && m_plotWidget->legend() == nullptr ) { @@ -379,9 +336,59 @@ void RimAnalysisPlot::onLoadDataAndUpdate() m_plotWidget->insertLegend( nullptr ); } - // m_plotWidget->setLegendFontSize( m_legendFontSize() ); m_plotWidget->updateLegend(); } this->updateAxes(); } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimAnalysisPlot::buildTestPlot( RiuGroupedBarChartBuilder& chartBuilder ) +{ + chartBuilder.addBarEntry( "T1_The_red_Fox", "", "", std::numeric_limits::infinity(), "R1", "", 0.4 ); + chartBuilder.addBarEntry( "T1_The_red_Fox", "", "", std::numeric_limits::infinity(), "R2", "", 0.45 ); + chartBuilder.addBarEntry( "T1_The_red_Fox", "W1", "", std::numeric_limits::infinity(), "R1", "", 0.5 ); + chartBuilder.addBarEntry( "T1_The_red_Fox", "W1", "", std::numeric_limits::infinity(), "R2", "", 0.55 ); + chartBuilder.addBarEntry( "T1_The_red_Fox", "W3", "", std::numeric_limits::infinity(), "R1", "", 0.7 ); + chartBuilder.addBarEntry( "T1_The_red_Fox", "W3", "", std::numeric_limits::infinity(), "R2", "", 0.75 ); + chartBuilder.addBarEntry( "T1_The_red_Fox", "W2", "", std::numeric_limits::infinity(), "R1", "", 1.05 ); + chartBuilder.addBarEntry( "T1_The_red_Fox", "W2", "", std::numeric_limits::infinity(), "R2", "", 1.0 ); + + chartBuilder.addBarEntry( "T2", "W1", "", std::numeric_limits::infinity(), "R1", "", 1.5 ); + chartBuilder.addBarEntry( "T2", "W1", "", std::numeric_limits::infinity(), "R2", "", 1.5 ); + chartBuilder.addBarEntry( "T2", "W2", "", std::numeric_limits::infinity(), "R1", "", 2.0 ); + chartBuilder.addBarEntry( "T2", "W2", "", std::numeric_limits::infinity(), "R2", "", 2.0 ); + + chartBuilder.addBarEntry( "T3", "W1", "1", std::numeric_limits::infinity(), "R1", "", 1.5 ); + chartBuilder.addBarEntry( "T3", "W1", "2", std::numeric_limits::infinity(), "R2", "", 1.5 ); + chartBuilder.addBarEntry( "T3", "W2", "3", std::numeric_limits::infinity(), "R1", "", 2.0 ); + chartBuilder.addBarEntry( "T3", "W2", "4", std::numeric_limits::infinity(), "R1", "", 2.0 ); + chartBuilder.addBarEntry( "T3", "W2", "5", std::numeric_limits::infinity(), "R1", "", 2.0 ); + + chartBuilder.addBarEntry( "T4", "W1", "1", std::numeric_limits::infinity(), "R1", "", 1.5 ); + chartBuilder.addBarEntry( "T4", "W1", "2", std::numeric_limits::infinity(), "R2", "", 1.5 ); + chartBuilder.addBarEntry( "T4", "W2", "3", std::numeric_limits::infinity(), "R1", "", 2.0 ); + chartBuilder.addBarEntry( "T4", "W2", "4", std::numeric_limits::infinity(), "R2", "", 2.0 ); + chartBuilder.addBarEntry( "T4", "W1", "1", std::numeric_limits::infinity(), "R1", "", 1.6 ); + chartBuilder.addBarEntry( "T4", "W1", "2", std::numeric_limits::infinity(), "R2", "", 1.6 ); + chartBuilder.addBarEntry( "T4", "W2", "3", std::numeric_limits::infinity(), "R1", "", 2.6 ); + chartBuilder.addBarEntry( "T4", "W2", "4", std::numeric_limits::infinity(), "R2", "", -0.3 ); + + chartBuilder.addBarEntry( "T5", "", "", 1.5, "R3", "G1", 1.5 ); + chartBuilder.addBarEntry( "T5", "", "", 1.5, "R3", "G2", 1.5 ); + chartBuilder.addBarEntry( "T5", "", "", 2.0, "R3", "G3", 2.0 ); + chartBuilder.addBarEntry( "T5", "", "", 2.0, "R3", "G4", 2.0 ); + chartBuilder.addBarEntry( "T5", "", "", 1.6, "R3", "G5", 1.6 ); + chartBuilder.addBarEntry( "T5", "", "", 1.6, "R3", "G6", 1.6 ); + chartBuilder.addBarEntry( "T5", "", "", 2.6, "R3", "G7", 2.6 ); + chartBuilder.addBarEntry( "T5", "", "", -0.1, "R3", "G8", -0.1 ); + + chartBuilder.addBarEntry( "", "", "", 1.2, "", "A", 1.2 ); + chartBuilder.addBarEntry( "", "", "", 1.5, "", "B", 1.5 ); + chartBuilder.addBarEntry( "", "", "", 2.3, "", "C", 2.3 ); + chartBuilder.addBarEntry( "", "", "", 2.0, "", "D", 2.0 ); + chartBuilder.addBarEntry( "", "", "", 1.6, "", "E", 1.6 ); + chartBuilder.addBarEntry( "", "", "", 2.4, "", "F", -2.4 ); +} diff --git a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.h b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.h index 30ac2a1a7c..918adf1420 100644 --- a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.h +++ b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.h @@ -24,6 +24,7 @@ class RiuSummaryQwtPlot; class RimAnalysisPlotDataEntry; +class RiuGroupedBarChartBuilder; //================================================================================================== /// @@ -106,6 +107,8 @@ private: void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; void onLoadDataAndUpdate() override; + void buildTestPlot( RiuGroupedBarChartBuilder& chartBuilder ); + private: QPointer m_plotWidget; diff --git a/ApplicationCode/UserInterface/AnalysisPlots/RiuGroupedBarChartBuilder.cpp b/ApplicationCode/UserInterface/AnalysisPlots/RiuGroupedBarChartBuilder.cpp index 681e65e26c..628fc3a281 100644 --- a/ApplicationCode/UserInterface/AnalysisPlots/RiuGroupedBarChartBuilder.cpp +++ b/ApplicationCode/UserInterface/AnalysisPlots/RiuGroupedBarChartBuilder.cpp @@ -185,10 +185,7 @@ protected: //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -RiuGroupedBarChartBuilder::RiuGroupedBarChartBuilder( Qt::Orientation orientation ) - : m_orientation( orientation ) -{ -} +RiuGroupedBarChartBuilder::RiuGroupedBarChartBuilder() {} //-------------------------------------------------------------------------------------------------- /// @@ -208,7 +205,7 @@ void RiuGroupedBarChartBuilder::addBarEntry( const QString& majorTickText, //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RiuGroupedBarChartBuilder::addBarChartToPlot( QwtPlot* plot ) +void RiuGroupedBarChartBuilder::addBarChartToPlot( QwtPlot* plot, Qt::Orientation orientation ) { const double majGroupSpacing = 1.6; const double midGroupSpacing = 0.5; @@ -384,14 +381,15 @@ void RiuGroupedBarChartBuilder::addBarChartToPlot( QwtPlot* plot ) addQwtBarChart( plot, legendToBarPointsPair.second, legendToBarPointsPair.first, - RiaColorTables::summaryCurveDefaultPaletteColors().cycledQColor( idx ) ); + RiaColorTables::summaryCurveDefaultPaletteColors().cycledQColor( idx ), + orientation ); idx++; } // Set up the axis to contain group texts and tick marks { QwtPlot::Axis axis = QwtPlot::xBottom; - if ( m_orientation == Qt::Horizontal ) + if ( orientation == Qt::Horizontal ) { axis = QwtPlot::yLeft; } @@ -402,7 +400,7 @@ void RiuGroupedBarChartBuilder::addBarChartToPlot( QwtPlot* plot ) if ( midTickPositions.size() ) groupAxisScaleDiv.setTicks( QwtScaleDiv::MediumTick, midTickPositions ); if ( minTickPositions.size() ) groupAxisScaleDiv.setTicks( QwtScaleDiv::MinorTick, minTickPositions ); - if ( m_orientation == Qt::Horizontal ) + if ( orientation == Qt::Horizontal ) { groupAxisScaleDiv.invert(); } @@ -417,7 +415,7 @@ void RiuGroupedBarChartBuilder::addBarChartToPlot( QwtPlot* plot ) // Add texts on the bars inside the plot { QwtScaleDraw::Alignment alignment = QwtScaleDraw::TopScale; - if ( m_orientation == Qt::Horizontal ) + if ( orientation == Qt::Horizontal ) { alignment = QwtScaleDraw::RightScale; } @@ -432,7 +430,7 @@ void RiuGroupedBarChartBuilder::addBarChartToPlot( QwtPlot* plot ) } barTextScaleDiv.setTicks( QwtScaleDiv::MinorTick, onBarTickPositions ); - if ( m_orientation == Qt::Horizontal ) + if ( orientation == Qt::Horizontal ) { barTextScaleDiv.invert(); } @@ -455,7 +453,8 @@ void RiuGroupedBarChartBuilder::addBarChartToPlot( QwtPlot* plot ) void RiuGroupedBarChartBuilder::addQwtBarChart( QwtPlot* plot, const QVector& posAndValue, const QString& legendText, - const QColor& barColor ) + const QColor& barColor, + Qt::Orientation orientation ) { QPalette palette; palette.setColor( QPalette::Window, barColor ); @@ -472,7 +471,7 @@ void RiuGroupedBarChartBuilder::addQwtBarChart( QwtPlot* plot, barChart->setLayoutPolicy( QwtPlotAbstractBarChart::ScaleSamplesToAxes ); barChart->setLayoutHint( 1.0 ); barChart->setSymbol( barStyle ); - barChart->setOrientation( m_orientation ); + barChart->setOrientation( orientation ); barChart->attach( plot ); } diff --git a/ApplicationCode/UserInterface/AnalysisPlots/RiuGroupedBarChartBuilder.h b/ApplicationCode/UserInterface/AnalysisPlots/RiuGroupedBarChartBuilder.h index 6b56c9dc55..ca2564d356 100644 --- a/ApplicationCode/UserInterface/AnalysisPlots/RiuGroupedBarChartBuilder.h +++ b/ApplicationCode/UserInterface/AnalysisPlots/RiuGroupedBarChartBuilder.h @@ -32,7 +32,7 @@ class QColor; class RiuGroupedBarChartBuilder { public: - RiuGroupedBarChartBuilder( Qt::Orientation orientation ); + RiuGroupedBarChartBuilder(); void addBarEntry( const QString& majorTickText, const QString& midTickText, @@ -42,7 +42,7 @@ public: const QString& barText, const double value ); - void addBarChartToPlot( QwtPlot* plot ); + void addBarChartToPlot( QwtPlot* plot, Qt::Orientation orientation ); private: double midPoint( double v1, double v2 ) @@ -53,7 +53,8 @@ private: void addQwtBarChart( QwtPlot* plot, const QVector& posAndValue, const QString& legendText, - const QColor& barColor ); + const QColor& barColor, + Qt::Orientation orientation ); struct BarEntry {