Index: trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionPartialDependencePlotView.Designer.cs
===================================================================
--- trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionPartialDependencePlotView.Designer.cs	(revision 16430)
+++ trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionPartialDependencePlotView.Designer.cs	(revision 16519)
@@ -25,20 +25,23 @@
     private void InitializeComponent() {
       this.components = new System.ComponentModel.Container();
+      this.variableValuesModeComboBox = new System.Windows.Forms.ComboBox();
+      this.configSplitContainer = new System.Windows.Forms.SplitContainer();
+      this.variableGroupBox = new System.Windows.Forms.GroupBox();
       this.variableListView = new System.Windows.Forms.ListView();
-      this.partialDependencePlotTableLayout = new System.Windows.Forms.TableLayoutPanel();
+      this.rowSelectGroupBox = new System.Windows.Forms.GroupBox();
+      this.rowLabel = new System.Windows.Forms.Label();
+      this.rowNrNumericUpDown = new System.Windows.Forms.NumericUpDown();
+      this.densityGroupBox = new System.Windows.Forms.GroupBox();
+      this.columnsNumericUpDown = new System.Windows.Forms.NumericUpDown();
+      this.columnsLabel = new System.Windows.Forms.Label();
+      this.densityComboBox = new System.Windows.Forms.ComboBox();
+      this.densityLabel = new System.Windows.Forms.Label();
       this.yAxisConfigGroupBox = new System.Windows.Forms.GroupBox();
       this.limitView = new HeuristicLab.Problems.DataAnalysis.Views.DoubleLimitView();
       this.automaticYAxisCheckBox = new System.Windows.Forms.CheckBox();
-      this.densityGroupBox = new System.Windows.Forms.GroupBox();
-      this.columnsLabel = new System.Windows.Forms.Label();
-      this.densityComboBox = new System.Windows.Forms.ComboBox();
-      this.label1 = new System.Windows.Forms.Label();
-      this.configSplitContainer = new System.Windows.Forms.SplitContainer();
-      this.variableGroupBox = new System.Windows.Forms.GroupBox();
       this.scrollPanel = new System.Windows.Forms.Panel();
+      this.partialDependencePlotTableLayout = new System.Windows.Forms.TableLayoutPanel();
       this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
-      this.columnsNumericUpDown = new System.Windows.Forms.NumericUpDown();
-      this.yAxisConfigGroupBox.SuspendLayout();
-      this.densityGroupBox.SuspendLayout();
+      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
       ((System.ComponentModel.ISupportInitialize)(this.configSplitContainer)).BeginInit();
       this.configSplitContainer.Panel1.SuspendLayout();
@@ -46,8 +49,61 @@
       this.configSplitContainer.SuspendLayout();
       this.variableGroupBox.SuspendLayout();
+      this.rowSelectGroupBox.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.rowNrNumericUpDown)).BeginInit();
+      this.densityGroupBox.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.columnsNumericUpDown)).BeginInit();
+      this.yAxisConfigGroupBox.SuspendLayout();
       this.scrollPanel.SuspendLayout();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
-      ((System.ComponentModel.ISupportInitialize)(this.columnsNumericUpDown)).BeginInit();
       this.SuspendLayout();
+      // 
+      // variableValuesModeComboBox
+      // 
+      this.variableValuesModeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.variableValuesModeComboBox.Items.AddRange(new object[] {
+            "Row",
+            "Mean",
+            "Median",
+            "Most Common"});
+      this.variableValuesModeComboBox.Location = new System.Drawing.Point(10, 19);
+      this.variableValuesModeComboBox.Name = "variableValuesModeComboBox";
+      this.variableValuesModeComboBox.Size = new System.Drawing.Size(150, 21);
+      this.variableValuesModeComboBox.TabIndex = 3;
+      this.variableValuesModeComboBox.SelectedValueChanged += new System.EventHandler(this.variableValuesComboBox_SelectedValueChanged);
+      this.variableValuesModeComboBox.MouseLeave += new System.EventHandler(this.variableValuesModeComboBox_MouseLeave);
+      this.variableValuesModeComboBox.MouseHover += new System.EventHandler(this.variableValuesModeComboBox_MouseHover);
+      // 
+      // configSplitContainer
+      // 
+      this.configSplitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.configSplitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+      this.configSplitContainer.Location = new System.Drawing.Point(0, 0);
+      this.configSplitContainer.Name = "configSplitContainer";
+      // 
+      // configSplitContainer.Panel1
+      // 
+      this.configSplitContainer.Panel1.Controls.Add(this.variableGroupBox);
+      this.configSplitContainer.Panel1.Controls.Add(this.rowSelectGroupBox);
+      this.configSplitContainer.Panel1.Controls.Add(this.densityGroupBox);
+      this.configSplitContainer.Panel1.Controls.Add(this.yAxisConfigGroupBox);
+      // 
+      // configSplitContainer.Panel2
+      // 
+      this.configSplitContainer.Panel2.Controls.Add(this.scrollPanel);
+      this.configSplitContainer.Size = new System.Drawing.Size(715, 648);
+      this.configSplitContainer.SplitterDistance = 169;
+      this.configSplitContainer.TabIndex = 0;
+      this.configSplitContainer.TabStop = false;
+      // 
+      // variableGroupBox
+      // 
+      this.variableGroupBox.Controls.Add(this.variableListView);
+      this.variableGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.variableGroupBox.Location = new System.Drawing.Point(0, 225);
+      this.variableGroupBox.Name = "variableGroupBox";
+      this.variableGroupBox.Size = new System.Drawing.Size(169, 423);
+      this.variableGroupBox.TabIndex = 1;
+      this.variableGroupBox.TabStop = false;
+      this.variableGroupBox.Text = "Variables";
       // 
       // variableListView
@@ -57,5 +113,5 @@
       this.variableListView.Location = new System.Drawing.Point(3, 16);
       this.variableListView.Name = "variableListView";
-      this.variableListView.Size = new System.Drawing.Size(163, 478);
+      this.variableListView.Size = new System.Drawing.Size(163, 404);
       this.variableListView.TabIndex = 0;
       this.variableListView.UseCompatibleStateImageBehavior = false;
@@ -63,53 +119,33 @@
       this.variableListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.variableListView_ItemChecked);
       // 
-      // partialDependencePlotTableLayout
-      // 
-      this.partialDependencePlotTableLayout.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.partialDependencePlotTableLayout.AutoSize = true;
-      this.partialDependencePlotTableLayout.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
-      this.partialDependencePlotTableLayout.ColumnCount = 1;
-      this.partialDependencePlotTableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
-      this.partialDependencePlotTableLayout.Location = new System.Drawing.Point(0, 0);
-      this.partialDependencePlotTableLayout.Name = "partialDependencePlotTableLayout";
-      this.partialDependencePlotTableLayout.RowCount = 1;
-      this.partialDependencePlotTableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle());
-      this.partialDependencePlotTableLayout.Size = new System.Drawing.Size(542, 0);
-      this.partialDependencePlotTableLayout.TabIndex = 2;
-      // 
-      // yAxisConfigGroupBox
-      // 
-      this.yAxisConfigGroupBox.Controls.Add(this.limitView);
-      this.yAxisConfigGroupBox.Controls.Add(this.automaticYAxisCheckBox);
-      this.yAxisConfigGroupBox.Dock = System.Windows.Forms.DockStyle.Top;
-      this.yAxisConfigGroupBox.Location = new System.Drawing.Point(0, 0);
-      this.yAxisConfigGroupBox.Name = "yAxisConfigGroupBox";
-      this.yAxisConfigGroupBox.Size = new System.Drawing.Size(169, 77);
-      this.yAxisConfigGroupBox.TabIndex = 2;
-      this.yAxisConfigGroupBox.TabStop = false;
-      this.yAxisConfigGroupBox.Text = "Y-Axis";
-      // 
-      // limitView
-      // 
-      this.limitView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.limitView.Caption = "DoubleLimit View";
-      this.limitView.Content = null;
-      this.limitView.Location = new System.Drawing.Point(6, 20);
-      this.limitView.Name = "limitView";
-      this.limitView.ReadOnly = false;
-      this.limitView.Size = new System.Drawing.Size(157, 47);
-      this.limitView.TabIndex = 1;
-      // 
-      // automaticYAxisCheckBox
-      // 
-      this.automaticYAxisCheckBox.AutoSize = true;
-      this.automaticYAxisCheckBox.Location = new System.Drawing.Point(49, -1);
-      this.automaticYAxisCheckBox.Name = "automaticYAxisCheckBox";
-      this.automaticYAxisCheckBox.Size = new System.Drawing.Size(73, 17);
-      this.automaticYAxisCheckBox.TabIndex = 0;
-      this.automaticYAxisCheckBox.Text = "Automatic";
-      this.automaticYAxisCheckBox.UseVisualStyleBackColor = true;
-      this.automaticYAxisCheckBox.CheckedChanged += new System.EventHandler(this.automaticYAxisCheckBox_CheckedChanged);
+      // rowSelectGroupBox
+      // 
+      this.rowSelectGroupBox.Controls.Add(this.variableValuesModeComboBox);
+      this.rowSelectGroupBox.Controls.Add(this.rowLabel);
+      this.rowSelectGroupBox.Controls.Add(this.rowNrNumericUpDown);
+      this.rowSelectGroupBox.Dock = System.Windows.Forms.DockStyle.Top;
+      this.rowSelectGroupBox.Location = new System.Drawing.Point(0, 151);
+      this.rowSelectGroupBox.Name = "rowSelectGroupBox";
+      this.rowSelectGroupBox.Size = new System.Drawing.Size(169, 74);
+      this.rowSelectGroupBox.TabIndex = 1;
+      this.rowSelectGroupBox.TabStop = false;
+      this.rowSelectGroupBox.Text = "Variable Values";
+      // 
+      // rowLabel
+      // 
+      this.rowLabel.AutoSize = true;
+      this.rowLabel.Location = new System.Drawing.Point(7, 48);
+      this.rowLabel.Name = "rowLabel";
+      this.rowLabel.Size = new System.Drawing.Size(46, 13);
+      this.rowLabel.TabIndex = 2;
+      this.rowLabel.Text = "Row Nr.";
+      // 
+      // rowNrNumericUpDown
+      // 
+      this.rowNrNumericUpDown.Location = new System.Drawing.Point(66, 46);
+      this.rowNrNumericUpDown.Name = "rowNrNumericUpDown";
+      this.rowNrNumericUpDown.Size = new System.Drawing.Size(94, 20);
+      this.rowNrNumericUpDown.TabIndex = 1;
+      this.rowNrNumericUpDown.ValueChanged += new System.EventHandler(this.rowNrNumericUpDown_ValueChanged);
       // 
       // densityGroupBox
@@ -118,5 +154,5 @@
       this.densityGroupBox.Controls.Add(this.columnsLabel);
       this.densityGroupBox.Controls.Add(this.densityComboBox);
-      this.densityGroupBox.Controls.Add(this.label1);
+      this.densityGroupBox.Controls.Add(this.densityLabel);
       this.densityGroupBox.Dock = System.Windows.Forms.DockStyle.Top;
       this.densityGroupBox.Location = new System.Drawing.Point(0, 77);
@@ -126,85 +162,4 @@
       this.densityGroupBox.TabStop = false;
       this.densityGroupBox.Text = "Settings";
-      // 
-      // columnsLabel
-      // 
-      this.columnsLabel.AutoSize = true;
-      this.columnsLabel.Location = new System.Drawing.Point(7, 49);
-      this.columnsLabel.Name = "columnsLabel";
-      this.columnsLabel.Size = new System.Drawing.Size(50, 13);
-      this.columnsLabel.TabIndex = 0;
-      this.columnsLabel.Text = "Columns:";
-      // 
-      // densityComboBox
-      // 
-      this.densityComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.densityComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-      this.densityComboBox.FormattingEnabled = true;
-      this.densityComboBox.Items.AddRange(new object[] {
-            "None",
-            "Training",
-            "Test",
-            "All"});
-      this.densityComboBox.Location = new System.Drawing.Point(66, 19);
-      this.densityComboBox.Name = "densityComboBox";
-      this.densityComboBox.Size = new System.Drawing.Size(94, 21);
-      this.densityComboBox.TabIndex = 0;
-      this.densityComboBox.SelectedIndexChanged += new System.EventHandler(this.densityComboBox_SelectedIndexChanged);
-      // 
-      // label1
-      // 
-      this.label1.AutoSize = true;
-      this.label1.Location = new System.Drawing.Point(7, 22);
-      this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(45, 13);
-      this.label1.TabIndex = 0;
-      this.label1.Text = "Density:";
-      // 
-      // configSplitContainer
-      // 
-      this.configSplitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.configSplitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
-      this.configSplitContainer.Location = new System.Drawing.Point(0, 0);
-      this.configSplitContainer.Name = "configSplitContainer";
-      // 
-      // configSplitContainer.Panel1
-      // 
-      this.configSplitContainer.Panel1.Controls.Add(this.variableGroupBox);
-      this.configSplitContainer.Panel1.Controls.Add(this.densityGroupBox);
-      this.configSplitContainer.Panel1.Controls.Add(this.yAxisConfigGroupBox);
-      // 
-      // configSplitContainer.Panel2
-      // 
-      this.configSplitContainer.Panel2.Controls.Add(this.scrollPanel);
-      this.configSplitContainer.Size = new System.Drawing.Size(715, 648);
-      this.configSplitContainer.SplitterDistance = 169;
-      this.configSplitContainer.TabIndex = 0;
-      this.configSplitContainer.TabStop = false;
-      // 
-      // variableGroupBox
-      // 
-      this.variableGroupBox.Controls.Add(this.variableListView);
-      this.variableGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.variableGroupBox.Location = new System.Drawing.Point(0, 151);
-      this.variableGroupBox.Name = "variableGroupBox";
-      this.variableGroupBox.Size = new System.Drawing.Size(169, 497);
-      this.variableGroupBox.TabIndex = 1;
-      this.variableGroupBox.TabStop = false;
-      this.variableGroupBox.Text = "Variables";
-      // 
-      // scrollPanel
-      // 
-      this.scrollPanel.Controls.Add(this.partialDependencePlotTableLayout);
-      this.scrollPanel.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.scrollPanel.Location = new System.Drawing.Point(0, 0);
-      this.scrollPanel.Name = "scrollPanel";
-      this.scrollPanel.Size = new System.Drawing.Size(542, 648);
-      this.scrollPanel.TabIndex = 0;
-      // 
-      // errorProvider
-      // 
-      this.errorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink;
-      this.errorProvider.ContainerControl = this;
       // 
       // columnsNumericUpDown
@@ -228,4 +183,103 @@
       this.columnsNumericUpDown.ValueChanged += new System.EventHandler(this.columnsNumericUpDown_ValueChanged);
       // 
+      // columnsLabel
+      // 
+      this.columnsLabel.AutoSize = true;
+      this.columnsLabel.Location = new System.Drawing.Point(7, 49);
+      this.columnsLabel.Name = "columnsLabel";
+      this.columnsLabel.Size = new System.Drawing.Size(50, 13);
+      this.columnsLabel.TabIndex = 0;
+      this.columnsLabel.Text = "Columns:";
+      // 
+      // densityComboBox
+      // 
+      this.densityComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.densityComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.densityComboBox.FormattingEnabled = true;
+      this.densityComboBox.Items.AddRange(new object[] {
+            "None",
+            "Training",
+            "Test",
+            "All"});
+      this.densityComboBox.Location = new System.Drawing.Point(66, 19);
+      this.densityComboBox.Name = "densityComboBox";
+      this.densityComboBox.Size = new System.Drawing.Size(94, 21);
+      this.densityComboBox.TabIndex = 0;
+      this.densityComboBox.SelectedIndexChanged += new System.EventHandler(this.densityComboBox_SelectedIndexChanged);
+      // 
+      // densityLabel
+      // 
+      this.densityLabel.AutoSize = true;
+      this.densityLabel.Location = new System.Drawing.Point(7, 22);
+      this.densityLabel.Name = "densityLabel";
+      this.densityLabel.Size = new System.Drawing.Size(45, 13);
+      this.densityLabel.TabIndex = 0;
+      this.densityLabel.Text = "Density:";
+      // 
+      // yAxisConfigGroupBox
+      // 
+      this.yAxisConfigGroupBox.Controls.Add(this.limitView);
+      this.yAxisConfigGroupBox.Controls.Add(this.automaticYAxisCheckBox);
+      this.yAxisConfigGroupBox.Dock = System.Windows.Forms.DockStyle.Top;
+      this.yAxisConfigGroupBox.Location = new System.Drawing.Point(0, 0);
+      this.yAxisConfigGroupBox.Name = "yAxisConfigGroupBox";
+      this.yAxisConfigGroupBox.Size = new System.Drawing.Size(169, 77);
+      this.yAxisConfigGroupBox.TabIndex = 2;
+      this.yAxisConfigGroupBox.TabStop = false;
+      this.yAxisConfigGroupBox.Text = "Y-Axis";
+      // 
+      // limitView
+      // 
+      this.limitView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.limitView.Caption = "DoubleLimit View";
+      this.limitView.Content = null;
+      this.limitView.Location = new System.Drawing.Point(6, 20);
+      this.limitView.Name = "limitView";
+      this.limitView.ReadOnly = false;
+      this.limitView.Size = new System.Drawing.Size(157, 47);
+      this.limitView.TabIndex = 1;
+      // 
+      // automaticYAxisCheckBox
+      // 
+      this.automaticYAxisCheckBox.AutoSize = true;
+      this.automaticYAxisCheckBox.Location = new System.Drawing.Point(49, -1);
+      this.automaticYAxisCheckBox.Name = "automaticYAxisCheckBox";
+      this.automaticYAxisCheckBox.Size = new System.Drawing.Size(73, 17);
+      this.automaticYAxisCheckBox.TabIndex = 0;
+      this.automaticYAxisCheckBox.Text = "Automatic";
+      this.automaticYAxisCheckBox.UseVisualStyleBackColor = true;
+      this.automaticYAxisCheckBox.CheckedChanged += new System.EventHandler(this.automaticYAxisCheckBox_CheckedChanged);
+      // 
+      // scrollPanel
+      // 
+      this.scrollPanel.Controls.Add(this.partialDependencePlotTableLayout);
+      this.scrollPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.scrollPanel.Location = new System.Drawing.Point(0, 0);
+      this.scrollPanel.Name = "scrollPanel";
+      this.scrollPanel.Size = new System.Drawing.Size(542, 648);
+      this.scrollPanel.TabIndex = 0;
+      // 
+      // partialDependencePlotTableLayout
+      // 
+      this.partialDependencePlotTableLayout.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.partialDependencePlotTableLayout.AutoSize = true;
+      this.partialDependencePlotTableLayout.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+      this.partialDependencePlotTableLayout.ColumnCount = 1;
+      this.partialDependencePlotTableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+      this.partialDependencePlotTableLayout.Location = new System.Drawing.Point(0, 0);
+      this.partialDependencePlotTableLayout.Name = "partialDependencePlotTableLayout";
+      this.partialDependencePlotTableLayout.RowCount = 1;
+      this.partialDependencePlotTableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle());
+      this.partialDependencePlotTableLayout.Size = new System.Drawing.Size(542, 0);
+      this.partialDependencePlotTableLayout.TabIndex = 2;
+      // 
+      // errorProvider
+      // 
+      this.errorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink;
+      this.errorProvider.ContainerControl = this;
+      // 
       // RegressionSolutionPartialDependencePlotView
       // 
@@ -235,8 +289,4 @@
       this.Name = "RegressionSolutionPartialDependencePlotView";
       this.Size = new System.Drawing.Size(715, 648);
-      this.yAxisConfigGroupBox.ResumeLayout(false);
-      this.yAxisConfigGroupBox.PerformLayout();
-      this.densityGroupBox.ResumeLayout(false);
-      this.densityGroupBox.PerformLayout();
       this.configSplitContainer.Panel1.ResumeLayout(false);
       this.configSplitContainer.Panel2.ResumeLayout(false);
@@ -244,8 +294,15 @@
       this.configSplitContainer.ResumeLayout(false);
       this.variableGroupBox.ResumeLayout(false);
+      this.rowSelectGroupBox.ResumeLayout(false);
+      this.rowSelectGroupBox.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.rowNrNumericUpDown)).EndInit();
+      this.densityGroupBox.ResumeLayout(false);
+      this.densityGroupBox.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.columnsNumericUpDown)).EndInit();
+      this.yAxisConfigGroupBox.ResumeLayout(false);
+      this.yAxisConfigGroupBox.PerformLayout();
       this.scrollPanel.ResumeLayout(false);
       this.scrollPanel.PerformLayout();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
-      ((System.ComponentModel.ISupportInitialize)(this.columnsNumericUpDown)).EndInit();
       this.ResumeLayout(false);
 
@@ -266,6 +323,11 @@
     private System.Windows.Forms.Label columnsLabel;
     private System.Windows.Forms.ErrorProvider errorProvider;
-    private System.Windows.Forms.Label label1;
+    private System.Windows.Forms.Label densityLabel;
     private System.Windows.Forms.NumericUpDown columnsNumericUpDown;
+    private System.Windows.Forms.GroupBox rowSelectGroupBox;
+    private System.Windows.Forms.ComboBox variableValuesModeComboBox;
+    private System.Windows.Forms.Label rowLabel;
+    private System.Windows.Forms.NumericUpDown rowNrNumericUpDown;
+    private System.Windows.Forms.ToolTip toolTip;
   }
 }
Index: trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionPartialDependencePlotView.cs
===================================================================
--- trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionPartialDependencePlotView.cs	(revision 16430)
+++ trunk/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionPartialDependencePlotView.cs	(revision 16519)
@@ -97,4 +97,9 @@
       var problemData = Content.ProblemData;
 
+      if (sharedFixedVariables != null) {
+        sharedFixedVariables.ItemChanged -= SharedFixedVariables_ItemChanged;
+        sharedFixedVariables.Reset -= SharedFixedVariables_Reset;
+      }
+
       // Init Y-axis range
       double min = double.MaxValue, max = double.MinValue;
@@ -120,19 +125,16 @@
         Content.ProblemData.Dataset.VariableNames.Where(v => inputvariables.Contains(v)).ToList();
 
-
       var doubleVariables = allowedInputVariables.Where(problemData.Dataset.VariableHasType<double>);
-      var doubleVariableValues = (IEnumerable<IList>)doubleVariables.Select(x => new List<double> { problemData.Dataset.GetDoubleValues(x, problemData.TrainingIndices).Median() });
+      var doubleVariableValues = (IEnumerable<IList>)doubleVariables.Select(x => new List<double> {
+        problemData.Dataset.GetDoubleValue(x, 0)
+      });
 
       var factorVariables = allowedInputVariables.Where(problemData.Dataset.VariableHasType<string>);
       var factorVariableValues = (IEnumerable<IList>)factorVariables.Select(x => new List<string> {
-        problemData.Dataset.GetStringValues(x, problemData.TrainingIndices)
-        .GroupBy(val => val).OrderByDescending(g => g.Count()).First().Key // most frequent value
+        problemData.Dataset.GetStringValue(x, 0)
       });
 
-      if (sharedFixedVariables != null)
-        sharedFixedVariables.ItemChanged -= SharedFixedVariables_ItemChanged;
-
       sharedFixedVariables = new ModifiableDataset(doubleVariables.Concat(factorVariables), doubleVariableValues.Concat(factorVariableValues));
-
+      variableValuesModeComboBox.SelectedItem = "Median"; // triggers UpdateVariableValue and changes shardFixedVariables
 
       // create controls
@@ -166,5 +168,5 @@
         };
 
-        // Initially, the inner plot areas are not initialized for hidden charts (scollpanel, ...)
+        // Initially, the inner plot areas are not initialized for hidden charts (scrollpanel, ...)
         // This event handler listens for the paint event once (where everything is already initialized) to do some manual layouting.
         plot.ChartPostPaint += OnPartialDependencePlotPostPaint;
@@ -205,5 +207,5 @@
         };
 
-        // Initially, the inner plot areas are not initialized for hidden charts (scollpanel, ...)
+        // Initially, the inner plot areas are not initialized for hidden charts (scrollpanel, ...)
         // This event handler listens for the paint event once (where everything is already initialized) to do some manual layouting.
         plot.ChartPostPaint += OnFactorPartialDependencePlotPostPaint;
@@ -230,4 +232,7 @@
 
       sharedFixedVariables.ItemChanged += SharedFixedVariables_ItemChanged;
+      sharedFixedVariables.Reset += SharedFixedVariables_Reset;
+
+      rowNrNumericUpDown.Maximum = Content.ProblemData.Dataset.Rows - 1;
 
       RecalculateAndRelayoutCharts();
@@ -235,4 +240,13 @@
 
     private void SharedFixedVariables_ItemChanged(object sender, EventArgs<int, int> e) {
+      SharedFixedVariablesChanged();
+    }
+    private void SharedFixedVariables_Reset(object sender, EventArgs e) {
+      SharedFixedVariablesChanged();
+    }
+    private void SharedFixedVariablesChanged() {
+      if (!setVariableValues) // set mode to "nothing" if change was not initiated from a "mode change"
+        variableValuesModeComboBox.SelectedIndex = -1;
+
       double yValue = Content.Model.GetEstimatedValues(sharedFixedVariables, new[] { 0 }).Single();
       string title = Content.ProblemData.TargetVariable + ": " + yValue.ToString("G5", CultureInfo.CurrentCulture);
@@ -243,5 +257,4 @@
       }
     }
-
 
     private void OnPartialDependencePlotPostPaint(object o, EventArgs e) {
@@ -564,4 +577,87 @@
       }
     }
+
+    // flag that the current change is not triggered by a manual change from within a single plot
+    private bool setVariableValues = false;
+    private void variableValuesComboBox_SelectedValueChanged(object sender, EventArgs e) {
+      if (variableValuesModeComboBox.SelectedIndex == -1)
+        return; // changed to "manual" due to manual change of a variable
+      setVariableValues = true;
+      UpdateVariableValues();
+      setVariableValues = false;
+    }
+    private void rowNrNumericUpDown_ValueChanged(object sender, EventArgs e) {
+      if ((string)variableValuesModeComboBox.SelectedItem != "Row") {
+        variableValuesModeComboBox.SelectedItem = "Row"; // triggers UpdateVariableValues
+      } else {
+        setVariableValues = true;
+        UpdateVariableValues();
+        setVariableValues = false;
+      }
+    }
+    private void UpdateVariableValues() {
+      string mode = (string)variableValuesModeComboBox.SelectedItem;
+
+      var dataset = Content.ProblemData.Dataset;
+      object[] newRow;
+
+      if (mode == "Row") {
+        int rowNumber = (int)rowNrNumericUpDown.Value;
+        newRow = sharedFixedVariables.VariableNames
+          .Select<string, object>(variableName => {
+            if (dataset.DoubleVariables.Contains(variableName)) {
+              return dataset.GetDoubleValue(variableName, rowNumber);
+            } else if (dataset.StringVariables.Contains(variableName)) {
+              return dataset.GetStringValue(variableName, rowNumber);
+            } else {
+              throw new NotSupportedException("Only double and string(factor) columns are currently supported.");
+            }
+          }).ToArray();
+      } else {
+        newRow = sharedFixedVariables.VariableNames
+          .Select<string, object>(variableName => {
+            if (dataset.DoubleVariables.Contains(variableName)) {
+              var values = dataset.GetDoubleValues(variableName);
+              return
+                mode == "Mean" ? values.Average() :
+                mode == "Median" ? values.Median() :
+                mode == "Most Common" ? MostCommon(values) :
+                throw new NotSupportedException();
+            } else if (dataset.StringVariables.Contains(variableName)) {
+              var values = dataset.GetStringValues(variableName);
+              return
+                mode == "Mean" ? MostCommon(values) :
+                mode == "Median" ? MostCommon(values) :
+                mode == "Most Common" ? MostCommon(values) :
+                throw new NotSupportedException();
+            } else {
+              throw new NotSupportedException("Only double and string(factor) columns are currently supported.");
+            }
+          }).ToArray();
+      }
+
+      sharedFixedVariables.ReplaceRow(0, newRow);
+    }
+
+    private static T MostCommon<T>(IEnumerable<T> values) {
+      return values.GroupBy(x => x).OrderByDescending(g => g.Count()).Select(g => g.Key).First();
+    }
+
+    // ToolTips cannot be shown longer than 5000ms, only by using ToolTip.Show manually
+    // See: https://stackoverflow.com/questions/8225807/c-sharp-tooltip-doesnt-display-long-enough
+    private void variableValuesModeComboBox_MouseHover(object sender, EventArgs e) {
+      string tooltipText = @"Sets each variable to a specific value:
+    Row - Selects the value based on a specified row of the dataset.
+    Mean - Sets the value to the arithmetic mean of the variable.
+    Median - Sets the value to the median of the variable.
+    Most Common - Sets the value to the most common value of the variable (first if multiple).
+
+Note: For categorical values, the most common value is used when selecting Mean, Median or Most Common.";
+      toolTip.Show(tooltipText, variableValuesModeComboBox, 30000);
+      toolTip.Active = true;
+    }
+    private void variableValuesModeComboBox_MouseLeave(object sender, EventArgs e) {
+      toolTip.Active = false;
+    }
   }
 }
