Index: branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedVariablesView.Designer.cs
===================================================================
--- branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedVariablesView.Designer.cs	(revision 14915)
+++ branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedVariablesView.Designer.cs	(revision 14917)
@@ -90,10 +90,10 @@
       // uncheckAllButton
       // 
+      this.uncheckAllButton.Image = global::HeuristicLab.DataPreprocessing.Views.PreprocessingIcons.None;
       this.uncheckAllButton.Location = new System.Drawing.Point(66, 19);
       this.uncheckAllButton.Name = "uncheckAllButton";
       this.uncheckAllButton.Size = new System.Drawing.Size(24, 24);
       this.uncheckAllButton.TabIndex = 7;
-      this.uncheckAllButton.Text = "N";
-      this.toolTip.SetToolTip(this.uncheckAllButton, "Uncheck all variables");
+      this.toolTip.SetToolTip(this.uncheckAllButton, "None");
       this.uncheckAllButton.UseVisualStyleBackColor = true;
       this.uncheckAllButton.Click += new System.EventHandler(this.uncheckAllButton_Click);
@@ -101,10 +101,10 @@
       // checkAllButton
       // 
-      this.checkAllButton.Location = new System.Drawing.Point(36, 19);
+      this.checkAllButton.Image = global::HeuristicLab.DataPreprocessing.Views.PreprocessingIcons.All;
+      this.checkAllButton.Location = new System.Drawing.Point(6, 19);
       this.checkAllButton.Name = "checkAllButton";
       this.checkAllButton.Size = new System.Drawing.Size(24, 24);
       this.checkAllButton.TabIndex = 7;
-      this.checkAllButton.Text = "A";
-      this.toolTip.SetToolTip(this.checkAllButton, "Check all variables");
+      this.toolTip.SetToolTip(this.checkAllButton, "All");
       this.checkAllButton.UseVisualStyleBackColor = true;
       this.checkAllButton.Click += new System.EventHandler(this.checkAllButton_Click);
@@ -112,10 +112,10 @@
       // checkInputsTargetButton
       // 
-      this.checkInputsTargetButton.Location = new System.Drawing.Point(6, 19);
+      this.checkInputsTargetButton.Image = global::HeuristicLab.DataPreprocessing.Views.PreprocessingIcons.Inputs;
+      this.checkInputsTargetButton.Location = new System.Drawing.Point(36, 19);
       this.checkInputsTargetButton.Name = "checkInputsTargetButton";
       this.checkInputsTargetButton.Size = new System.Drawing.Size(24, 24);
       this.checkInputsTargetButton.TabIndex = 7;
-      this.checkInputsTargetButton.Text = "I";
-      this.toolTip.SetToolTip(this.checkInputsTargetButton, "Check only inputs and target variable");
+      this.toolTip.SetToolTip(this.checkInputsTargetButton, "Inputs & Target");
       this.checkInputsTargetButton.UseVisualStyleBackColor = true;
       this.checkInputsTargetButton.Click += new System.EventHandler(this.checkInputsTargetButton_Click);
Index: branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedVariablesView.cs
===================================================================
--- branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedVariablesView.cs	(revision 14915)
+++ branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedVariablesView.cs	(revision 14917)
@@ -25,5 +25,4 @@
 using System.Windows.Forms;
 using HeuristicLab.Collections;
-using HeuristicLab.Common.Resources;
 using HeuristicLab.Core.Views;
 using HeuristicLab.Data;
@@ -44,10 +43,4 @@
     protected PreprocessingCheckedVariablesView() {
       InitializeComponent();
-      checkInputsTargetButton.Text = string.Empty;
-      checkInputsTargetButton.Image = VSImageLibrary.Namespace;
-      checkAllButton.Text = string.Empty;
-      checkAllButton.Image = VSImageLibrary.Expand;
-      uncheckAllButton.Text = string.Empty;
-      uncheckAllButton.Image = VSImageLibrary.Collapse;
     }
 
Index: branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.Designer.cs
===================================================================
--- branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.Designer.cs	(revision 14915)
+++ branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.Designer.cs	(revision 14917)
@@ -57,4 +57,5 @@
       this.heightLabel = new System.Windows.Forms.Label();
       this.widthLabel = new System.Windows.Forms.Label();
+      this.lockAspectCheckBox = new System.Windows.Forms.CheckBox();
       this.regressionGroupBox = new System.Windows.Forms.GroupBox();
       this.regressionTypeComboBox = new System.Windows.Forms.ComboBox();
@@ -198,8 +199,9 @@
       this.sizeGroupBox.Controls.Add(this.heightLabel);
       this.sizeGroupBox.Controls.Add(this.widthLabel);
+      this.sizeGroupBox.Controls.Add(this.lockAspectCheckBox);
       this.sizeGroupBox.Dock = System.Windows.Forms.DockStyle.Bottom;
-      this.sizeGroupBox.Location = new System.Drawing.Point(0, 212);
+      this.sizeGroupBox.Location = new System.Drawing.Point(0, 179);
       this.sizeGroupBox.Name = "sizeGroupBox";
-      this.sizeGroupBox.Size = new System.Drawing.Size(180, 72);
+      this.sizeGroupBox.Size = new System.Drawing.Size(180, 95);
       this.sizeGroupBox.TabIndex = 5;
       this.sizeGroupBox.TabStop = false;
@@ -211,5 +213,5 @@
             | System.Windows.Forms.AnchorStyles.Right)));
       this.heightNumericUpDown.Increment = new decimal(new int[] {
-            100,
+            50,
             0,
             0,
@@ -225,5 +227,5 @@
       this.heightNumericUpDown.TabIndex = 4;
       this.heightNumericUpDown.Value = new decimal(new int[] {
-            300,
+            225,
             0,
             0,
@@ -236,5 +238,5 @@
             | System.Windows.Forms.AnchorStyles.Right)));
       this.widthNumericUpDown.Increment = new decimal(new int[] {
-            100,
+            50,
             0,
             0,
@@ -250,5 +252,5 @@
       this.widthNumericUpDown.TabIndex = 3;
       this.widthNumericUpDown.Value = new decimal(new int[] {
-            400,
+            300,
             0,
             0,
@@ -274,4 +276,16 @@
       this.widthLabel.Text = "Width:";
       // 
+      // lockAspectCheckBox
+      // 
+      this.lockAspectCheckBox.AutoSize = true;
+      this.lockAspectCheckBox.Checked = true;
+      this.lockAspectCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
+      this.lockAspectCheckBox.Location = new System.Drawing.Point(50, 66);
+      this.lockAspectCheckBox.Name = "lockAspectCheckBox";
+      this.lockAspectCheckBox.Size = new System.Drawing.Size(114, 17);
+      this.lockAspectCheckBox.TabIndex = 6;
+      this.lockAspectCheckBox.Text = "Lock Aspect Ratio";
+      this.lockAspectCheckBox.UseVisualStyleBackColor = true;
+      // 
       // regressionGroupBox
       // 
@@ -281,7 +295,7 @@
       this.regressionGroupBox.Controls.Add(this.label4);
       this.regressionGroupBox.Dock = System.Windows.Forms.DockStyle.Bottom;
-      this.regressionGroupBox.Location = new System.Drawing.Point(0, 328);
+      this.regressionGroupBox.Location = new System.Drawing.Point(0, 324);
       this.regressionGroupBox.Name = "regressionGroupBox";
-      this.regressionGroupBox.Size = new System.Drawing.Size(180, 75);
+      this.regressionGroupBox.Size = new System.Drawing.Size(180, 79);
       this.regressionGroupBox.TabIndex = 3;
       this.regressionGroupBox.TabStop = false;
@@ -348,7 +362,7 @@
       this.groupingOptionsBox.Controls.Add(this.groupingComboBox);
       this.groupingOptionsBox.Dock = System.Windows.Forms.DockStyle.Bottom;
-      this.groupingOptionsBox.Location = new System.Drawing.Point(0, 284);
+      this.groupingOptionsBox.Location = new System.Drawing.Point(0, 274);
       this.groupingOptionsBox.Name = "groupingOptionsBox";
-      this.groupingOptionsBox.Size = new System.Drawing.Size(180, 44);
+      this.groupingOptionsBox.Size = new System.Drawing.Size(180, 50);
       this.groupingOptionsBox.TabIndex = 8;
       this.groupingOptionsBox.TabStop = false;
@@ -416,4 +430,5 @@
     private System.Windows.Forms.NumericUpDown widthNumericUpDown;
     private System.Windows.Forms.NumericUpDown heightNumericUpDown;
+    private System.Windows.Forms.CheckBox lockAspectCheckBox;
   }
 }
Index: branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.cs
===================================================================
--- branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.cs	(revision 14915)
+++ branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.cs	(revision 14917)
@@ -43,4 +43,7 @@
     public ScatterPlotMultiView() {
       InitializeComponent();
+
+      oldWidth = (int)widthNumericUpDown.Value;
+      oldHeight = (int)heightNumericUpDown.Value;
 
       regressionTypeComboBox.DataSource = Enum.GetValues(typeof(RegressionType));
@@ -465,21 +468,45 @@
 
     #region Sizing of Charts
+    private int oldWidth;
+    private int oldHeight;
+    private float AspectRatio {
+      get {
+        if (oldWidth == 0 || oldHeight == 0) return 1;
+        return (float)oldWidth / oldHeight;
+      }
+    }
+    private bool lockChange = false;
 
     private int GetColumnWidth() { return (int)widthNumericUpDown.Value; }
     private int GetRowHeight() { return (int)heightNumericUpDown.Value; }
+
     private void widthNumericUpDown_ValueChanged(object sender, EventArgs e) {
       frameTableLayoutPanel.SuspendRepaint();
+      if (lockAspectCheckBox.Checked && !lockChange) {
+        lockChange = true;
+        heightNumericUpDown.Value = (int)((double)widthNumericUpDown.Value / AspectRatio);
+        lockChange = false;
+      }
       for (int i = 0; i < columnHeaderTableLayoutPanel.ColumnCount; i++) {
         columnHeaderTableLayoutPanel.ColumnStyles[i].Width = GetColumnWidth();
         bodyTableLayoutPanel.ColumnStyles[i].Width = GetColumnWidth();
       }
+      oldWidth = GetColumnWidth();
+      oldHeight = GetRowHeight();
       frameTableLayoutPanel.ResumeRepaint(true);
     }
     private void heightNumericUpDown_ValueChanged(object sender, EventArgs e) {
       frameTableLayoutPanel.SuspendRepaint();
+      if (lockAspectCheckBox.Checked && !lockChange) {
+        lockChange = true;
+        widthNumericUpDown.Value = (int)((double)heightNumericUpDown.Value * AspectRatio);
+        lockChange = false;
+      }
       for (int i = 0; i < rowHeaderTableLayoutPanel.RowCount; i++) {
         rowHeaderTableLayoutPanel.RowStyles[i].Height = GetRowHeight();
         bodyTableLayoutPanel.RowStyles[i].Height = GetRowHeight();
       }
+      oldWidth = GetColumnWidth();
+      oldHeight = GetRowHeight();
       frameTableLayoutPanel.ResumeRepaint(true);
     }
Index: branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotSingleView.cs
===================================================================
--- branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotSingleView.cs	(revision 14915)
+++ branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotSingleView.cs	(revision 14917)
@@ -183,16 +183,13 @@
     private void UpdateRegressionLine() {
       if (Content == null) return;
-      scatterPlotControl.Content.Rows.Clear();
 
       var regressionType = (RegressionType)regressionTypeComboBox.SelectedValue;
       int order = (int)polynomialRegressionOrderNumericUpDown.Value;
 
-      var rows = scatterPlotControl.Content.Rows.ToList();
-      foreach (var row in rows) {
+      foreach (var row in scatterPlotControl.Content.Rows) {
         row.VisualProperties.IsRegressionVisibleInLegend = false;
         row.VisualProperties.RegressionType = regressionType;
         row.VisualProperties.PolynomialRegressionOrder = order;
       }
-      scatterPlotControl.Content.Rows.AddRange(rows);
     }
     #endregion
