Add legend support to Report Plot

This commit is contained in:
Gaute Lindkvist
2020-05-28 08:11:37 +02:00
parent 56addaf55d
commit 84177d3a00
7 changed files with 51 additions and 18 deletions

View File

@@ -498,6 +498,22 @@ const caf::ColorTable& RiaColorTables::waterAndRockPaletteColors()
return colorTable;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const caf::ColorTable& RiaColorTables::correlationPaletteColors()
{
static std::vector<cvf::Color3ub> colors{
cvf::Color3ub( 255, 25, 50 ), // Bluish red
cvf::Color3ub( 240, 240, 240 ), // Light Gray
cvf::Color3ub( 255, 100, 50 ), // Dark red Orange
};
static caf::ColorTable colorTable = caf::ColorTable( colors );
return colorTable;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -60,6 +60,7 @@ public:
static const caf::ColorTable& editableWellPathsPaletteColors();
static const caf::ColorTable& wellPathsPaletteColors();
static const caf::ColorTable& waterAndRockPaletteColors();
static const caf::ColorTable& correlationPaletteColors();
static cvf::Color3f undefinedCellColor();

View File

@@ -152,6 +152,7 @@ RimCorrelationMatrixPlot::RimCorrelationMatrixPlot()
CAF_PDM_InitFieldNoDefault( &m_legendConfig, "LegendConfig", "", "", "", "" );
m_legendConfig = new RimRegularLegendConfig();
m_legendConfig->setAutomaticRanges( -1.0, 1.0, -1.0, 1.0 );
m_legendConfig->setColorLegend( RimRegularLegendConfig::mapToColorLegend( RimRegularLegendConfig::CORRELATION ) );
m_selectMultipleVectors = true;
}
@@ -190,6 +191,14 @@ bool RimCorrelationMatrixPlot::sortByAbsoluteValues() const
return m_sortByAbsoluteValues;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimRegularLegendConfig* RimCorrelationMatrixPlot::legendConfig()
{
return m_legendConfig();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -275,10 +284,10 @@ void RimCorrelationMatrixPlot::onLoadDataAndUpdate()
m_plotWidget->detachItems( QwtPlotItem::Rtti_PlotScale );
m_plotWidget->detachItems( QwtPlotItem::Rtti_PlotItem );
updateLegend();
createMatrix();
m_plotWidget->insertLegend( nullptr );
m_plotWidget->updateLegend();
this->updateAxes();
this->updatePlotTitle();
@@ -547,11 +556,15 @@ void RimCorrelationMatrixPlot::updatePlotTitle()
{
m_description = QString( "%1 Matrix for Parameters vs Result Vectors" ).arg( m_correlationFactor().uiText() );
}
m_plotWidget->setPlotTitle( m_description );
m_plotWidget->setPlotTitleEnabled( m_showPlotTitle && isMdiWindow() );
if ( isMdiWindow() )
if ( m_plotWidget )
{
m_plotWidget->setPlotTitleFontSize( titleFontSize() );
m_plotWidget->setPlotTitle( m_description );
m_plotWidget->setPlotTitleEnabled( m_showPlotTitle && isMdiWindow() );
if ( isMdiWindow() )
{
m_plotWidget->setPlotTitleFontSize( titleFontSize() );
}
}
}
@@ -560,14 +573,7 @@ void RimCorrelationMatrixPlot::updatePlotTitle()
//--------------------------------------------------------------------------------------------------
void RimCorrelationMatrixPlot::updateLegend()
{
if ( m_showAbsoluteValues )
{
m_legendConfig->setAutomaticRanges( -1.0, 1.0, -1.0, 1.0 );
}
else
{
m_legendConfig->setAutomaticRanges( 0.0, 1.0, 0.0, 1.0 );
}
if ( m_plotWidget ) m_plotWidget->updateLegend();
}
//--------------------------------------------------------------------------------------------------

View File

@@ -44,9 +44,10 @@ public:
RimCorrelationMatrixPlot();
~RimCorrelationMatrixPlot() override;
CorrelationFactor correlationFactor() const;
bool showAbsoluteValues() const;
bool sortByAbsoluteValues() const;
CorrelationFactor correlationFactor() const;
bool showAbsoluteValues() const;
bool sortByAbsoluteValues() const;
RimRegularLegendConfig* legendConfig();
signals:
void matrixCellSelected( const EnsembleParameter&, const RiaSummaryCurveDefinition& );

View File

@@ -22,6 +22,7 @@
#include "RimCorrelationMatrixPlot.h"
#include "RimParameterResultCrossPlot.h"
#include "RimRegularLegendConfig.h"
#include "RiuMultiPlotPage.h"
@@ -329,8 +330,8 @@ void RimCorrelationReportPlot::onLoadDataAndUpdate()
void RimCorrelationReportPlot::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
{
m_correlationMatrixPlot->uiOrdering( "report", uiOrdering );
auto plotGroup = uiOrdering.addNewGroup( "Plot Settings" );
RimPlotWindow::uiOrderingForPlotLayout( uiConfigName, *plotGroup );
auto plotGroup = uiOrdering.addNewGroup( "Font Settings" );
plotGroup->add( &m_titleFontSize );
plotGroup->add( &m_subTitleFontSize );
plotGroup->add( &m_labelFontSize );
plotGroup->add( &m_axisTitleFontSize );
@@ -344,6 +345,7 @@ void RimCorrelationReportPlot::defineUiOrdering( QString uiConfigName, caf::PdmU
void RimCorrelationReportPlot::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering,
QString uiConfigName /*= "" */ )
{
uiTreeOrdering.add( m_correlationMatrixPlot->legendConfig() );
uiTreeOrdering.skipRemainingChildren( true );
}

View File

@@ -94,6 +94,7 @@ void RimRegularLegendConfig::ColorRangeEnum::setUp()
addItem( RimRegularLegendConfig::BLUE_LIGHT_DARK, "BLUE_DARK_LIGHT", "Blue Light to Dark" );
addItem( RimRegularLegendConfig::GREEN_RED, "GREEN_RED", "Green to Red" );
addItem( RimRegularLegendConfig::BLUE_MAGENTA, "BLUE_MAGENTA", "Blue to Magenta" );
addItem( RimRegularLegendConfig::CORRELATION, "CORRELATION", "Correlation colors" );
addItem( RimRegularLegendConfig::UNDEFINED, "UNDEFINED", "Undefined" );
setDefault( RimRegularLegendConfig::UNDEFINED );
}
@@ -928,6 +929,9 @@ cvf::Color3ubArray RimRegularLegendConfig::colorArrayFromColorType( ColorRangesT
case RimRegularLegendConfig::STIMPLAN:
return RiaColorTables::stimPlanPaletteColors().color3ubArray();
break;
case RimRegularLegendConfig::CORRELATION:
return RiaColorTables::correlationPaletteColors().color3ubArray();
break;
default:
if ( ColorManager::isEnsembleColorRange( colorType ) )
return ColorManager::EnsembleColorRanges().at( colorType );

View File

@@ -86,6 +86,9 @@ public:
RED_LIGHT_DARK,
GREEN_LIGHT_DARK,
BLUE_LIGHT_DARK,
CORRELATION,
UNDEFINED
};