Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Controls/GradientChart.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Controls/GradientChart.Designer.cs	(revision 14130)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Controls/GradientChart.Designer.cs	(revision 14131)
@@ -31,4 +31,5 @@
       System.Windows.Forms.DataVisualization.Charting.StripLine stripLine2 = new System.Windows.Forms.DataVisualization.Charting.StripLine();
       System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
+      System.Windows.Forms.DataVisualization.Charting.Title title1 = new System.Windows.Forms.DataVisualization.Charting.Title();
       this.calculationPendingLabel = new System.Windows.Forms.Label();
       this.calculationPendingTimer = new System.Windows.Forms.Timer(this.components);
@@ -74,6 +75,7 @@
       chartArea1.Name = "ChartArea";
       chartArea1.Position.Auto = false;
-      chartArea1.Position.Height = 100F;
+      chartArea1.Position.Height = 90F;
       chartArea1.Position.Width = 100F;
+      chartArea1.Position.Y = 10F;
       this.chart.ChartAreas.Add(chartArea1);
       this.chart.Dock = System.Windows.Forms.DockStyle.Fill;
@@ -88,4 +90,11 @@
       this.chart.Size = new System.Drawing.Size(453, 308);
       this.chart.TabIndex = 0;
+      title1.Alignment = System.Drawing.ContentAlignment.TopCenter;
+      title1.DockedToChartArea = "ChartArea";
+      title1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      title1.IsDockedInsideChartArea = false;
+      title1.Name = "Title";
+      title1.Text = "[Title]";
+      this.chart.Titles.Add(title1);
       this.chart.SelectionRangeChanged += new System.EventHandler<System.Windows.Forms.DataVisualization.Charting.CursorEventArgs>(this.chart_SelectionRangeChanged);
       this.chart.AnnotationPositionChanged += new System.EventHandler(this.chart_AnnotationPositionChanged);
@@ -94,4 +103,5 @@
       this.chart.DragEnter += new System.Windows.Forms.DragEventHandler(this.chart_DragEnter);
       this.chart.MouseMove += new System.Windows.Forms.MouseEventHandler(this.chart_MouseMove);
+      this.chart.Resize += new System.EventHandler(this.chart_Resize);
       // 
       // configurationButton
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Controls/GradientChart.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Controls/GradientChart.cs	(revision 14130)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Controls/GradientChart.cs	(revision 14131)
@@ -66,5 +66,5 @@
       set {
         chart.Annotations[0].Visible = value;
-        if (!value) chart.ChartAreas[0].AxisX.Title = string.Empty;
+        if (!value) chart.Titles[0].Text = string.Empty;
       }
     }
@@ -281,5 +281,5 @@
 
       if (ShowCursor)
-        chart.ChartAreas[0].AxisX.Title = FreeVariable + " : " + defaultValue.ToString("N3", CultureInfo.CurrentCulture);
+        chart.Titles[0].Text = FreeVariable + " : " + defaultValue.ToString("N3", CultureInfo.CurrentCulture);
 
       ResizeAllSeriesData();
@@ -323,4 +323,13 @@
           throw;
       }
+    }
+
+    public void UpdateTitlePosition() {
+      var title = chart.Titles[0];
+      var plotArea = InnerPlotPosition;
+
+      title.Visible = plotArea.Width != 0;
+
+      title.Position.X = plotArea.X + (plotArea.Width / 2);
     }
 
@@ -627,5 +636,5 @@
 
       if (ShowCursor) {
-        chart.ChartAreas[0].AxisX.Title = FreeVariable + " : " + x.ToString("N3", CultureInfo.CurrentCulture);
+        chart.Titles[0].Text = FreeVariable + " : " + x.ToString("N3", CultureInfo.CurrentCulture);
         chart.Update();
       }
@@ -639,10 +648,10 @@
     }
 
-    private void chart_DragDrop(object sender, DragEventArgs e) {
+    private async void chart_DragDrop(object sender, DragEventArgs e) {
       var data = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat);
       if (data != null) {
         var solution = data as IRegressionSolution;
         if (!solutions.Contains(solution))
-          AddSolutionAsync(solution);
+          await AddSolutionAsync(solution);
       }
     }
@@ -670,5 +679,10 @@
       OnZoomChanged(this, EventArgs.Empty);
     }
+
+    private void chart_Resize(object sender, EventArgs e) {
+      UpdateTitlePosition();
+    }
     #endregion
   }
 }
+
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionGradientView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionGradientView.cs	(revision 14130)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionGradientView.cs	(revision 14131)
@@ -162,5 +162,5 @@
     }
 
-    private void trackbar_CheckedChanged(object sender, EventArgs e) {
+    private async void trackbar_CheckedChanged(object sender, EventArgs e) {
       var trackBar = sender as DensityTrackbar;
       if (trackBar == null || !trackBar.Checked) return;
@@ -169,20 +169,20 @@
         tb.Checked = false;
       gradientChart.FreeVariable = variableNames[trackbars.IndexOf(trackBar)];
-      gradientChart.RecalculateAsync();
-    }
-
-    private void trackbar_LimitsChanged(object sender, EventArgs e) {
+      await gradientChart.RecalculateAsync();
+    }
+
+    private async void trackbar_LimitsChanged(object sender, EventArgs e) {
       var trackBar = sender as DensityTrackbar;
       if (trackBar == null || !trackBar.Checked) return;
       gradientChart.FixedXAxisMin = trackBar.Limits.Lower;
       gradientChart.FixedXAxisMax = trackBar.Limits.Upper;
-      gradientChart.RecalculateAsync();
-    }
-
-    private void trackbar_ValueChanged(object sender, EventArgs e) {
+      await gradientChart.RecalculateAsync();
+    }
+
+    private async void trackbar_ValueChanged(object sender, EventArgs e) {
       var trackBar = sender as DensityTrackbar;
       if (trackBar == null) return;
       sharedFixedVariables.SetVariableValue((double)trackBar.Value, variableNames[trackbars.IndexOf(trackBar)], 0);
-      gradientChart.RecalculateAsync();
+      await gradientChart.RecalculateAsync();
     }
 
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionTargetResponseGradientView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionTargetResponseGradientView.cs	(revision 14130)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionTargetResponseGradientView.cs	(revision 14131)
@@ -127,5 +127,6 @@
           Margin = Padding.Empty,
           Height = 12,
-          Visible = false
+          Visible = false,
+          Top = (int)(gradientChart.Height * 0.1),
         };
         densityCharts.Add(variableName, densityChart);
@@ -137,4 +138,9 @@
           if (density.Visible)
             UpdateDensityChart(density, gradient.FreeVariable);
+        };
+        gradientChart.SizeChanged += (o, e) => {
+          var gradient = (GradientChart)o;
+          var density = densityCharts[gradient.FreeVariable];
+          density.Top = (int)(gradient.Height * 0.1);
         };
 
@@ -372,4 +378,6 @@
         densityChart.Visible = true;
       }
+
+      gradientChart.UpdateTitlePosition();
     }
 
