diff --git a/GUI/View/Instrument/DistributionEditor.cpp b/GUI/View/Instrument/DistributionEditor.cpp
index 5ecc637216e01e4ad56c34e40ab306991c8ae5df..5fcceec603d8e5c1ff87a3bb5429327a90537f23 100644
--- a/GUI/View/Instrument/DistributionEditor.cpp
+++ b/GUI/View/Instrument/DistributionEditor.cpp
@@ -19,8 +19,10 @@
 #include "GUI/Support/XML/Backup.h"
 #include "GUI/Support/XML/Streamer.h"
 #include "GUI/View/Instrument/DistributionForms.h"
+#include "GUI/View/Instrument/DistributionPlot.h"
 #include "GUI/View/Instrument/EditDistributionDialog.h"
 #include "GUI/View/PropertyEditor/GroupInfoBox.h"
+#include "GUI/View/Tool/GroupBoxCollapser.h"
 #include "GUI/View/Tool/WidgetUtils.h"
 #include <QComboBox>
 #include <QFormLayout>
@@ -112,20 +114,29 @@ DistributionEditor::DistributionEditor(const QString& title,
                                        const std::optional<MeanConfig>& mean_config,
                                        GUI::ID::Distributions distributions, QWidget* parent,
                                        BeamDistributionItem* item)
-    : QWidget(parent)
+    : QGroupBox(title, parent)
     , m_title(title)
 {
-    auto* layout = new QVBoxLayout(this);
+    setProperty("subgroup", true); // for stylesheet addressing
+    auto* hLayout = new QHBoxLayout(this);
+    m_selector = new DistributionSelector(mean_config, distributions, this, item);
+    hLayout->addWidget(m_selector);
+    hLayout->setSpacing(50);
+
+    m_plot = new DistributionPlot(this);
+    m_plot->setFixedSize(280, 170);
+    m_plot->setShowMouseCoords(false);
+    hLayout->addWidget(m_plot);
+    hLayout->addStretch(1);
 
-    auto* gbox = new GroupInfoBox(title, this);
-    auto* glayout = new QVBoxLayout(gbox);
-    m_selector = new DistributionSelector(mean_config, distributions, gbox, item);
-    glayout->addWidget(m_selector);
-    layout->addWidget(gbox);
+    GroupBoxCollapser::installIntoGroupBox(this);
 
     connect(m_selector, &DistributionSelector::distributionChanged, this,
             &DistributionEditor::distributionChanged);
-    connect(gbox, &GroupInfoBox::clicked, this, &DistributionEditor::showDialog);
+    connect(m_selector, &DistributionSelector::distributionChanged, this,
+            &DistributionEditor::updatePlot);
+
+    updatePlot();
 }
 
 void DistributionEditor::updateData()
@@ -138,6 +149,14 @@ void DistributionEditor::showDialog()
     showEditDistributionDialog(m_selector, m_title);
 }
 
+void DistributionEditor::updatePlot()
+{
+    auto* d = m_selector->item()->distribution();
+    m_plot->setVisible(!dynamic_cast<const DistributionNoneItem*>(d));
+    m_plot->setItem(d);
+    m_plot->plotItem();
+}
+
 //--------------------------------------------------------------------------------------------------
 // free functions
 //--------------------------------------------------------------------------------------------------
diff --git a/GUI/View/Instrument/DistributionEditor.h b/GUI/View/Instrument/DistributionEditor.h
index 788a973ac5b769d09e353cdaeca3ad65af620dae..a2928e972090983f9f22591601ae28bad70c4552 100644
--- a/GUI/View/Instrument/DistributionEditor.h
+++ b/GUI/View/Instrument/DistributionEditor.h
@@ -16,13 +16,14 @@
 #define BORNAGAIN_GUI_VIEW_INSTRUMENT_DISTRIBUTIONEDITOR_H
 
 #include "GUI/View/Tool/ID.h"
-#include <QWidget>
+#include <QGroupBox>
 
 class QComboBox;
 class QStackedLayout;
 class DistributionForm;
 class BeamDistributionItem;
 class QFormLayout;
+class DistributionPlot;
 
 #include <boost/numeric/interval.hpp>
 
@@ -76,7 +77,7 @@ private:
 /// DistributionSelector as above but contained in a GroupBox with a title and a button
 /// to open the distribution dialog
 
-class DistributionEditor : public QWidget {
+class DistributionEditor : public QGroupBox {
     Q_OBJECT
 
 public:
@@ -92,10 +93,12 @@ signals:
 
 private slots:
     void showDialog();
+    void updatePlot();
 
 private:
     QString m_title;
     DistributionSelector* m_selector;
+    DistributionPlot* m_plot;
 };
 
 /// utility function to show the EditDistributionDialog for a selector
diff --git a/GUI/View/Instrument/DistributionPlot.cpp b/GUI/View/Instrument/DistributionPlot.cpp
index 15e60ac8baf2813ed76b226bb2acba5138301b94..d9cb8b69bc468930eb91e5db2ce82943555b8db0 100644
--- a/GUI/View/Instrument/DistributionPlot.cpp
+++ b/GUI/View/Instrument/DistributionPlot.cpp
@@ -297,6 +297,11 @@ void DistributionPlot::setXAxisName(const QString& xAxisName)
     m_plot->xAxis->setLabel(xAxisName);
 }
 
+void DistributionPlot::setShowMouseCoords(bool b)
+{
+    m_label->setVisible(b);
+}
+
 namespace {
 
 //! Returns (xmin, xmax) of x-axis to display single value.
diff --git a/GUI/View/Instrument/DistributionPlot.h b/GUI/View/Instrument/DistributionPlot.h
index 08c0a4fe45e4a583b9ed042219bce85a1f10bab2..8df15e3db588b567cc0921572d9cb5f7a11f2e0f 100644
--- a/GUI/View/Instrument/DistributionPlot.h
+++ b/GUI/View/Instrument/DistributionPlot.h
@@ -36,6 +36,7 @@ public:
     void setItem(DistributionItem* item);
     void plotItem();
     void setXAxisName(const QString& xAxisName);
+    void setShowMouseCoords(bool b);
 
 public slots:
     void onMouseMove(QMouseEvent* event);
diff --git a/GUI/View/Instrument/InclinationAnglesEditor.cpp b/GUI/View/Instrument/InclinationAnglesEditor.cpp
index 49f7873dd4afb470c9974c2a373af8a2962b51fd..1c0badc9055ee55fc5720df6317c77fa020233e3 100644
--- a/GUI/View/Instrument/InclinationAnglesEditor.cpp
+++ b/GUI/View/Instrument/InclinationAnglesEditor.cpp
@@ -17,39 +17,35 @@
 #include "GUI/Model/Device/PointwiseAxisItem.h"
 #include "GUI/Model/Device/SpecularBeamInclinationItem.h"
 #include "GUI/View/Instrument/DistributionEditor.h"
+#include "GUI/View/Instrument/DistributionPlot.h"
 #include "GUI/View/Instrument/SphericalAxisEditor.h"
 #include "GUI/View/PropertyEditor/GroupInfoBox.h"
-
+#include "GUI/View/Tool/GroupBoxCollapser.h"
 #include <QComboBox>
 #include <QFormLayout>
 
-namespace {
-static constexpr auto title = "Inclination angles [deg]";
-}
-
 InclinationAnglesEditor::InclinationAnglesEditor(QWidget* parent, SpecularBeamInclinationItem* item)
-    : QWidget(parent)
+    : QGroupBox("Inclination angles [deg]", parent)
     , m_item(item)
 {
-    auto* layout = new QVBoxLayout(this);
+    setProperty("subgroup", true); // for stylesheet addressing
+    auto* hLayout = new QHBoxLayout(this);
 
-    auto* gbox = new GroupInfoBox(title, this);
-    auto* gform = new QFormLayout(gbox);
-    connect(gbox, &GroupInfoBox::clicked, this, &InclinationAnglesEditor::showDialog);
-    layout->addWidget(gbox);
+    auto* gform = new QFormLayout(this);
+    hLayout->addLayout(gform);
 
-    m_distributionEditor =
-        new DistributionSelector(std::nullopt, GUI::ID::Distributions::Symmetric, gbox, m_item);
-    gform->addRow(m_distributionEditor);
+    m_selector =
+        new DistributionSelector(std::nullopt, GUI::ID::Distributions::Symmetric, this, m_item);
+    gform->addRow(m_selector);
 
-    m_typeComboBox = new QComboBox(gbox);
+    m_typeComboBox = new QComboBox(this);
     m_typeComboBox->addItem("Uniform axis");
     m_typeComboBox->addItem("Non-uniform axis");
     gform->addRow("Axis type:", m_typeComboBox);
     connect(m_typeComboBox, qOverload<int>(&QComboBox::currentIndexChanged), this,
             &InclinationAnglesEditor::onAxisTypeSelected);
 
-    m_form = new SphericalAxisForm(gform, gbox);
+    m_form = new SphericalAxisForm(gform, this);
 
     const int idx = m_item->pointwiseAlphaAxisSelected() ? 1 : 0;
     ASSERT(idx != -1);
@@ -59,9 +55,22 @@ InclinationAnglesEditor::InclinationAnglesEditor(QWidget* parent, SpecularBeamIn
         onAxisTypeSelected(idx); // trigger update manually
     m_typeComboBox->setEnabled(m_item->pointwiseAlphaAxisDefined());
 
-    connect(m_distributionEditor, &DistributionSelector::distributionChanged, this,
+    m_plot = new DistributionPlot(this);
+    m_plot->setFixedSize(280, 170);
+    m_plot->setShowMouseCoords(false);
+    hLayout->addWidget(m_plot);
+    hLayout->setAlignment(m_plot, Qt::AlignTop);
+    hLayout->addStretch(1);
+
+    GroupBoxCollapser::installIntoGroupBox(this);
+
+    connect(m_selector, &DistributionSelector::distributionChanged, this,
             &InclinationAnglesEditor::dataChanged);
+    connect(m_selector, &DistributionSelector::distributionChanged, this,
+            &InclinationAnglesEditor::updatePlot);
     connect(m_form, &SphericalAxisForm::dataChanged, this, &InclinationAnglesEditor::dataChanged);
+
+    updatePlot();
 }
 
 void InclinationAnglesEditor::updateIndicators()
@@ -89,7 +98,10 @@ void InclinationAnglesEditor::onAxisTypeSelected(int index)
     }
 }
 
-void InclinationAnglesEditor::showDialog()
+void InclinationAnglesEditor::updatePlot()
 {
-    showEditDistributionDialog(m_distributionEditor, title);
+    auto* d = m_selector->item()->distribution();
+    m_plot->setVisible(!dynamic_cast<const DistributionNoneItem*>(d));
+    m_plot->setItem(d);
+    m_plot->plotItem();
 }
diff --git a/GUI/View/Instrument/InclinationAnglesEditor.h b/GUI/View/Instrument/InclinationAnglesEditor.h
index bd2f7a80815acce3732af0aace084fc518ad033d..9c1d2e9621ee0f17f854545ae438d3ef524afc26 100644
--- a/GUI/View/Instrument/InclinationAnglesEditor.h
+++ b/GUI/View/Instrument/InclinationAnglesEditor.h
@@ -15,16 +15,17 @@
 #ifndef BORNAGAIN_GUI_VIEW_INSTRUMENT_INCLINATIONANGLESEDITOR_H
 #define BORNAGAIN_GUI_VIEW_INSTRUMENT_INCLINATIONANGLESEDITOR_H
 
-#include <QWidget>
+#include <QGroupBox>
 
 class DistributionSelector;
 class QComboBox;
 class SpecularBeamInclinationItem;
 class SphericalAxisForm;
+class DistributionPlot;
 
 //! Editor for the case where there is no single inclination angle
 
-class InclinationAnglesEditor : public QWidget {
+class InclinationAnglesEditor : public QGroupBox {
     Q_OBJECT
 public:
     InclinationAnglesEditor(QWidget* parent, SpecularBeamInclinationItem* item);
@@ -36,13 +37,14 @@ signals:
 
 private slots:
     void onAxisTypeSelected(int index);
-    void showDialog();
+    void updatePlot();
 
 private:
-    DistributionSelector* m_distributionEditor;
+    DistributionSelector* m_selector;
     QComboBox* m_typeComboBox;
     SphericalAxisForm* m_form;
     SpecularBeamInclinationItem* m_item;
+    DistributionPlot* m_plot;
 };