diff --git a/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/DynamicPDF/SliceSelector.ui b/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/DynamicPDF/SliceSelector.ui
index 54352c828084ea77d1a82b8010d516ef601b7b4e..ead6c608cb22216a299945f7d709931f639889da 100644
--- a/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/DynamicPDF/SliceSelector.ui
+++ b/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/DynamicPDF/SliceSelector.ui
@@ -6,12 +6,12 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>535</width>
-    <height>654</height>
+    <width>613</width>
+    <height>850</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
@@ -29,18 +29,24 @@
    <layout class="QVBoxLayout" name="verticalLayout">
     <item>
      <widget class="QGroupBox" name="groupLoadSlices">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
       <property name="title">
-       <string>Loads Slices</string>
+       <string>Input</string>
       </property>
       <layout class="QGridLayout" name="loRangeBinning">
        <property name="topMargin">
-        <number>0</number>
+        <number>9</number>
        </property>
        <property name="bottomMargin">
-        <number>0</number>
+        <number>9</number>
        </property>
        <item row="0" column="0">
-        <widget class="MantidQt::MantidWidgets::DataSelector" name="dataSelector"/>
+        <widget class="MantidQt::MantidWidgets::DataSelector" name="dataSelector" native="true"/>
        </item>
       </layout>
      </widget>
@@ -89,13 +95,26 @@
      <layout class="QHBoxLayout" name="layout2Dview">
       <item>
        <widget class="QSlider" name="sliderSelectSlice">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="orientation">
          <enum>Qt::Vertical</enum>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="MantidQt::MantidWidgets::MWView" name="slices2DPlot"/>
+       <widget class="MantidQt::MantidWidgets::MWView" name="slices2DPlot" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+       </widget>
       </item>
      </layout>
     </item>
@@ -108,7 +127,7 @@
        <item>
         <widget class="MantidQt::MantidWidgets::PreviewPlot" name="previewPlotSelectedSlice" native="true">
          <property name="sizePolicy">
-          <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
            <verstretch>0</verstretch>
           </sizepolicy>
@@ -187,17 +206,6 @@
   </widget>
  </widget>
  <customwidgets>
-  <customwidget>
-   <class>QwtPlot</class>
-   <extends>QFrame</extends>
-   <header>qwt_plot.h</header>
-   <container>1</container>
-  </customwidget>
-  <customwidget>
-   <class>MantidQt::MantidWidgets::MWView</class>
-   <extends>Qwidget</extends>
-   <header>MantidQtMantidWidgets/MWView.h</header>
-  </customwidget>
   <customwidget>
    <class>MantidQt::MantidWidgets::DataSelector</class>
    <extends>QWidget</extends>
@@ -209,6 +217,11 @@
    <header>MantidQtMantidWidgets/PreviewPlot.h</header>
    <container>1</container>
   </customwidget>
+  <customwidget>
+   <class>MantidQt::MantidWidgets::MWView</class>
+   <extends>QWidget</extends>
+   <header>MantidQtMantidWidgets/MWView.h</header>
+  </customwidget>
  </customwidgets>
  <tabstops>
   <tabstop>spinboxSliceSelector</tabstop>
diff --git a/MantidQt/CustomInterfaces/src/DynamicPDF/SliceSelector.cpp b/MantidQt/CustomInterfaces/src/DynamicPDF/SliceSelector.cpp
index 8130ebc96d64256b7c643f327e53ea6c49b333a9..124b467e169085bb48551bc5b9d9b62622e276be 100644
--- a/MantidQt/CustomInterfaces/src/DynamicPDF/SliceSelector.cpp
+++ b/MantidQt/CustomInterfaces/src/DynamicPDF/SliceSelector.cpp
@@ -84,7 +84,8 @@ void SliceSelector::loadSlices(const QString &workspaceName) {
   m_uiForm.spinboxSliceSelector->setValue(0);
 
   /// initialize the 2D view of the slices;
-
+  m_uiForm.slices2DPlot->setWorkspace(m_loadedWorkspace->m_ws);
+  m_uiForm.slices2DPlot->updateDisplay();
 
   /// initialize the preview plot
   updatePlotSelectedSlice();
diff --git a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MWView.h b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MWView.h
index 0ee3a80308a6377819807490edb14f65f63eca7a..a1c41a6dde08db281414a884a7ea7968cb883ce2 100644
--- a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MWView.h
+++ b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MWView.h
@@ -10,6 +10,7 @@
 // includes for workspace handling
 #include "MantidAPI/MatrixWorkspace_fwd.h"
 #include "MantidAPI/IMDWorkspace.h"
+#include "MantidGeometry/MDGeometry/MDHistoDimension.h"
 
 namespace Mantid{
 namespace API{
@@ -27,6 +28,9 @@ class MdSettings;
 namespace MantidWidgets {
 class ColorBarWidget;
 
+using MWDimension_sptr = boost::shared_ptr<Mantid::API::MWDimension>;
+using MWDimension_const_sptr = boost::shared_ptr<const Mantid::API::MWDimension>;
+
 /** A viewer for a Matrix Workspace.
  *
  * Before drawing, it acquires a ReadLock to prevent
@@ -66,6 +70,7 @@ public:
   ~MWView();
   void loadColorMap(QString filename = QString() );
   void setWorkspace(Mantid::API::MatrixWorkspace_sptr ws);
+  void updateDisplay();
 
 signals:
   /// Signal emitted when someone uses setWorkspace() on MWView
@@ -80,8 +85,9 @@ private:
   void initLayout();
   void loadSettings();
   void saveSettings();
-  void updateDisplay();
   void checkRangeLimits();
+  void findRangeFull();
+  void setVectorDimensions();
 
   Ui::MWView m_uiForm;
   /// Spectrogram plot of MWView
@@ -94,9 +100,14 @@ private:
   boost::shared_ptr<MantidQt::API::MdSettings>  m_mdSettings;
   /// Workspace being shown
   Mantid::API::MatrixWorkspace_sptr m_workspace;
-
+  /// The calculated range of values in the FULL data set
+  QwtDoubleInterval m_colorRangeFull;
+  Mantid::API::MDNormalization m_normalization;
+  /// Vector of the dimensions to show.
+  std::vector<Mantid::Geometry::MDHistoDimension_sptr> m_dimensions;
 };
 
+
 } // namespace MantidWidgets
 } // namespace MantidQt
 
diff --git a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MWView.ui b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MWView.ui
index 9efd8d068c878bf36d9da5dc7622d6e6ee27554e..43aaf6480a64ec520c34ccf3c3069ef57b2ccfad 100644
--- a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MWView.ui
+++ b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MWView.ui
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>941</width>
-    <height>718</height>
+    <width>706</width>
+    <height>462</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -18,16 +18,30 @@
     <rect>
      <x>19</x>
      <y>19</y>
-     <width>911</width>
-     <height>691</height>
+     <width>681</width>
+     <height>441</height>
     </rect>
    </property>
    <layout class="QHBoxLayout" name="viewer">
     <item>
-     <widget class="MantidQt::MantidWidgets::SafeQwtPlot" name="plot2D"/>
+     <widget class="MantidQt::MantidWidgets::SafeQwtPlot" name="plot2D">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+     </widget>
     </item>
     <item>
-     <widget class="MantidQt::MantidWidgets::ColorBarWidget" name="colorBar" native="true"/>
+     <widget class="MantidQt::MantidWidgets::ColorBarWidget" name="colorBar" native="true">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+     </widget>
     </item>
    </layout>
   </widget>
diff --git a/MantidQt/MantidWidgets/src/MWView.cpp b/MantidQt/MantidWidgets/src/MWView.cpp
index eb1e97bb9251ffd8de986cbd438dcd6c1712c748..dfe53ff36d2828c6fe5e365b8ef884054eb310ed 100644
--- a/MantidQt/MantidWidgets/src/MWView.cpp
+++ b/MantidQt/MantidWidgets/src/MWView.cpp
@@ -2,10 +2,17 @@
 // includes for workspace handling
 #include "MantidAPI/MatrixWorkspace.h"
 #include "MantidGeometry/MDGeometry/MDTypes.h"
+#include "MantidKernel/ReadLock.h"
+#include "MantidQtAPI/SignalRange.h"
+#include "MantidGeometry/MDGeometry/IMDDimension.h"
+#include "MantidGeometry/MDGeometry/MDHistoDimension.h"
+#include <boost/pointer_cast.hpp>
+#include <boost/shared_ptr.hpp>
 // includes for interface development
 #include "MantidQtAPI/QwtRasterDataMD.h"
 #include "MantidQtAPI/MantidColorMap.h"
 #include <qwt_color_map.h>
+#include <qwt_double_rect.h>
 
 namespace {
 Mantid::Kernel::Logger g_log("MWView");
@@ -19,9 +26,11 @@ namespace MantidWidgets {
 //               ++++++++++++++++++++++++++++++++
 
 MWView::MWView(QWidget *parent)
-  : QWidget(parent), m_mdSettings{nullptr}, m_workspace{nullptr} {
+    : QWidget(parent), m_mdSettings{nullptr}, m_workspace{nullptr},
+      m_dimensions() {
   m_spect = new QwtPlotSpectrogram();
   m_data = new MantidQt::API::QwtRasterDataMD();
+  m_normalization = Mantid::API::NoNormalization;
   this->initLayout();
   this->loadSettings();
   this->updateDisplay();
@@ -55,11 +64,39 @@ void MWView::loadColorMap(QString filename) {
 void MWView::setWorkspace(Mantid::API::MatrixWorkspace_sptr ws) {
   m_workspace = ws;
   this->checkRangeLimits();
+  this->setVectorDimensions();
+  findRangeFull(); // minimum and maximum intensities in ws
+  m_uiForm.colorBar->setViewRange(m_colorRangeFull);
+  m_uiForm.colorBar->updateColorMap();
   m_data->setWorkspace(ws);
+  m_normalization = ws->displayNormalization();
+  m_data->setNormalization(m_normalization);
   m_uiForm.plot2D->setWorkspace(ws);
+  m_spect->setColorMap(m_uiForm.colorBar->getColorMap());
   emit workspaceChanged();
 }
 
+void MWView::updateDisplay() {
+  if (!m_workspace)
+    return;
+  m_data->setRange(m_uiForm.colorBar->getViewRange());
+  std::vector<Mantid::coord_t> slicePoint{0,0};
+  size_t dimX{0};
+  size_t dimY{1};
+  Mantid::Geometry::IMDDimension_const_sptr X = m_dimensions[dimX];
+  Mantid::Geometry::IMDDimension_const_sptr Y = m_dimensions[dimY];
+  m_data->setSliceParams(dimX, dimY, X, Y, slicePoint);
+  double left{X->getMinimum()};
+  double top{Y->getMinimum()};
+  double width{X->getMaximum()-X->getMinimum()};
+  double height{Y->getMaximum()-Y->getMinimum()};
+  QwtDoubleRect bounds{left,top,width, height};
+  m_data->setBoundingRect(bounds.normalized());
+  m_spect->setColorMap(m_uiForm.colorBar->getColorMap());
+  m_spect->setData(*m_data);
+  m_spect->itemChanged();
+  m_uiForm.plot2D->replot();
+}
 
 //               ++++++++++++++++++++++++++++++++
 //               ++++++++ Public slots   ++++++++
@@ -141,17 +178,8 @@ void MWView::saveSettings() {
   settings.setValue("TransparentZeros", (m_data->isZerosAsNan() ? 1 : 0));
 }
 
-void MWView::updateDisplay() {
-  if (!m_workspace)
-    return;
-  m_data->setRange(m_uiForm.colorBar->getViewRange());
-  m_spect->setData(*m_data);
-  m_spect->itemChanged();
-  m_uiForm.plot2D->replot();
-}
-
 // Verify workspace limits
-void MWView::checkRangeLimits(){
+void MWView::checkRangeLimits() {
   std::ostringstream mess;
   for (size_t d = 0; d < m_workspace->getNumDims(); d++) {
     Mantid::coord_t min = m_workspace->getDimension(d)->getMinimum();
@@ -171,11 +199,45 @@ void MWView::checkRangeLimits(){
   if (!mess.str().empty()) {
     mess << "Bad ranges could cause memory allocation errors. Please fix the "
             "workspace.";
-    mess << std::endl
-         << "You can continue using Mantid.";
+    mess << std::endl << "You can continue using Mantid.";
     throw std::out_of_range(mess.str());
   }
 }
 
+/// Find the full range of values in the workspace
+void MWView::findRangeFull() {
+  if (!m_workspace)
+    return;
+  Mantid::API::MatrixWorkspace_sptr workspace_used = m_workspace;
+
+  // Acquire a scoped read-only lock on the workspace, preventing it from being
+  // written
+  // while we iterate through.
+  Mantid::Kernel::ReadLock lock(*workspace_used);
+
+  // Iterate through the entire workspace
+  m_colorRangeFull =
+      API::SignalRange(*workspace_used, m_normalization).interval();
+  double minR = m_colorRangeFull.minValue();
+  if (minR <= 0 && m_uiForm.colorBar->getScale() == 1) {
+    double maxR = m_colorRangeFull.maxValue();
+    minR = pow(10., log10(maxR) - 10.);
+    m_colorRangeFull = QwtDoubleInterval(minR, maxR);
+  }
+}
+
+/// Update m_dimensions with the loaded workspace
+void MWView::setVectorDimensions() {
+  if (!m_workspace) {
+    return;
+  }
+  m_dimensions.clear();
+  for (size_t d = 0; d < m_workspace->getNumDims(); d++) {
+    Mantid::Geometry::MDHistoDimension_sptr dimension(
+        new Mantid::Geometry::MDHistoDimension(m_workspace->getDimension(d).get()));
+    m_dimensions.push_back(dimension);
+  }
+}
+
 } // namespace MantidQt
 } // namespace MantidWidgets