Index: branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.Designer.cs
===================================================================
--- branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.Designer.cs	(revision 6594)
+++ branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.Designer.cs	(revision 6610)
@@ -73,4 +73,6 @@
       this.lineStyleComboBox = new System.Windows.Forms.ComboBox();
       this.label8 = new System.Windows.Forms.Label();
+      this.label9 = new System.Windows.Forms.Label();
+      this.displayNameTextBox = new System.Windows.Forms.TextBox();
       ((System.ComponentModel.ISupportInitialize)(this.binsNumericUpDown)).BeginInit();
       this.commonGroupBox.SuspendLayout();
@@ -88,7 +90,7 @@
       this.chartTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
       this.chartTypeComboBox.FormattingEnabled = true;
-      this.chartTypeComboBox.Location = new System.Drawing.Point(76, 19);
+      this.chartTypeComboBox.Location = new System.Drawing.Point(89, 45);
       this.chartTypeComboBox.Name = "chartTypeComboBox";
-      this.chartTypeComboBox.Size = new System.Drawing.Size(224, 21);
+      this.chartTypeComboBox.Size = new System.Drawing.Size(211, 21);
       this.chartTypeComboBox.TabIndex = 1;
       this.chartTypeComboBox.SelectedValueChanged += new System.EventHandler(this.chartTypeComboBox_SelectedValueChanged);
@@ -101,5 +103,5 @@
       // 
       this.colorButton.BackColor = System.Drawing.SystemColors.Control;
-      this.colorButton.Location = new System.Drawing.Point(76, 46);
+      this.colorButton.Location = new System.Drawing.Point(89, 72);
       this.colorButton.Name = "colorButton";
       this.colorButton.Size = new System.Drawing.Size(23, 23);
@@ -140,14 +142,14 @@
       // 
       this.label1.AutoSize = true;
-      this.label1.Location = new System.Drawing.Point(8, 22);
+      this.label1.Location = new System.Drawing.Point(8, 48);
       this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(62, 13);
+      this.label1.Size = new System.Drawing.Size(58, 13);
       this.label1.TabIndex = 0;
-      this.label1.Text = "Chart Type:";
+      this.label1.Text = "Chart type:";
       // 
       // label2
       // 
       this.label2.AutoSize = true;
-      this.label2.Location = new System.Drawing.Point(8, 51);
+      this.label2.Location = new System.Drawing.Point(8, 77);
       this.label2.Name = "label2";
       this.label2.Size = new System.Drawing.Size(34, 13);
@@ -168,6 +170,8 @@
       this.commonGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.commonGroupBox.Controls.Add(this.displayNameTextBox);
       this.commonGroupBox.Controls.Add(this.axisGroupBox);
       this.commonGroupBox.Controls.Add(this.colorButton);
+      this.commonGroupBox.Controls.Add(this.label9);
       this.commonGroupBox.Controls.Add(this.label1);
       this.commonGroupBox.Controls.Add(this.label2);
@@ -175,5 +179,5 @@
       this.commonGroupBox.Location = new System.Drawing.Point(3, 3);
       this.commonGroupBox.Name = "commonGroupBox";
-      this.commonGroupBox.Size = new System.Drawing.Size(313, 158);
+      this.commonGroupBox.Size = new System.Drawing.Size(313, 181);
       this.commonGroupBox.TabIndex = 0;
       this.commonGroupBox.TabStop = false;
@@ -186,10 +190,10 @@
       this.axisGroupBox.Controls.Add(this.panel1);
       this.axisGroupBox.Controls.Add(this.panel2);
-      this.axisGroupBox.Location = new System.Drawing.Point(6, 75);
+      this.axisGroupBox.Location = new System.Drawing.Point(6, 101);
       this.axisGroupBox.Name = "axisGroupBox";
       this.axisGroupBox.Size = new System.Drawing.Size(299, 75);
       this.axisGroupBox.TabIndex = 9;
       this.axisGroupBox.TabStop = false;
-      this.axisGroupBox.Text = "Display Data on";
+      this.axisGroupBox.Text = "Display data on";
       // 
       // label5
@@ -200,5 +204,5 @@
       this.label5.Size = new System.Drawing.Size(39, 13);
       this.label5.TabIndex = 6;
-      this.label5.Text = "Y Axis:";
+      this.label5.Text = "Y-Axis:";
       // 
       // label6
@@ -209,5 +213,5 @@
       this.label6.Size = new System.Drawing.Size(39, 13);
       this.label6.TabIndex = 6;
-      this.label6.Text = "X Axis:";
+      this.label6.Text = "X-Axis:";
       // 
       // panel1
@@ -284,5 +288,5 @@
       this.histoGramGroupBox.Controls.Add(this.binsNumericUpDown);
       this.histoGramGroupBox.Controls.Add(this.label3);
-      this.histoGramGroupBox.Location = new System.Drawing.Point(3, 269);
+      this.histoGramGroupBox.Location = new System.Drawing.Point(3, 292);
       this.histoGramGroupBox.Name = "histoGramGroupBox";
       this.histoGramGroupBox.Size = new System.Drawing.Size(313, 49);
@@ -334,10 +338,10 @@
       this.lineChartGroupBox.Controls.Add(this.lineStyleComboBox);
       this.lineChartGroupBox.Controls.Add(this.label8);
-      this.lineChartGroupBox.Location = new System.Drawing.Point(3, 167);
+      this.lineChartGroupBox.Location = new System.Drawing.Point(3, 190);
       this.lineChartGroupBox.Name = "lineChartGroupBox";
       this.lineChartGroupBox.Size = new System.Drawing.Size(313, 96);
       this.lineChartGroupBox.TabIndex = 1;
       this.lineChartGroupBox.TabStop = false;
-      this.lineChartGroupBox.Text = "Line Chart";
+      this.lineChartGroupBox.Text = "Line chart";
       // 
       // lineWidthNumericUpDown
@@ -364,7 +368,7 @@
       this.label4.Location = new System.Drawing.Point(8, 68);
       this.label4.Name = "label4";
-      this.label4.Size = new System.Drawing.Size(61, 13);
+      this.label4.Size = new System.Drawing.Size(58, 13);
       this.label4.TabIndex = 4;
-      this.label4.Text = "Line Width:";
+      this.label4.Text = "Line width:";
       // 
       // label7
@@ -373,7 +377,7 @@
       this.label7.Location = new System.Drawing.Point(8, 46);
       this.label7.Name = "label7";
-      this.label7.Size = new System.Drawing.Size(82, 13);
+      this.label7.Size = new System.Drawing.Size(81, 13);
       this.label7.TabIndex = 2;
-      this.label7.Text = "Start Index at 0:";
+      this.label7.Text = "Start index at 0:";
       // 
       // lineStyleComboBox
@@ -392,7 +396,24 @@
       this.label8.Location = new System.Drawing.Point(8, 22);
       this.label8.Name = "label8";
-      this.label8.Size = new System.Drawing.Size(56, 13);
+      this.label8.Size = new System.Drawing.Size(54, 13);
       this.label8.TabIndex = 0;
-      this.label8.Text = "Line Style:";
+      this.label8.Text = "Line style:";
+      // 
+      // label9
+      // 
+      this.label9.AutoSize = true;
+      this.label9.Location = new System.Drawing.Point(8, 22);
+      this.label9.Name = "label9";
+      this.label9.Size = new System.Drawing.Size(75, 13);
+      this.label9.TabIndex = 0;
+      this.label9.Text = "Display Name:";
+      // 
+      // displayNameTextBox
+      // 
+      this.displayNameTextBox.Location = new System.Drawing.Point(89, 19);
+      this.displayNameTextBox.Name = "displayNameTextBox";
+      this.displayNameTextBox.Size = new System.Drawing.Size(211, 20);
+      this.displayNameTextBox.TabIndex = 10;
+      this.displayNameTextBox.Validated += new System.EventHandler(this.displayNameTextBox_Validated);
       // 
       // DataRowVisualPropertiesControl
@@ -404,5 +425,5 @@
       this.Controls.Add(this.commonGroupBox);
       this.Name = "DataRowVisualPropertiesControl";
-      this.Size = new System.Drawing.Size(319, 323);
+      this.Size = new System.Drawing.Size(319, 347);
       ((System.ComponentModel.ISupportInitialize)(this.binsNumericUpDown)).EndInit();
       this.commonGroupBox.ResumeLayout(false);
@@ -455,4 +476,6 @@
     private System.Windows.Forms.Label label5;
     private System.Windows.Forms.GroupBox axisGroupBox;
+    private System.Windows.Forms.TextBox displayNameTextBox;
+    private System.Windows.Forms.Label label9;
   }
 }
Index: branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.cs
===================================================================
--- branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.cs	(revision 6594)
+++ branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.cs	(revision 6610)
@@ -64,4 +64,5 @@
           binsApproximatelyRadioButton.Checked = false;
           binsExactRadioButton.Checked = false;
+          displayNameTextBox.Text = String.Empty;
         } else {
           chartTypeComboBox.SelectedItem = Content.ChartType;
@@ -83,4 +84,5 @@
           binsApproximatelyRadioButton.Checked = !Content.ExactBins;
           binsExactRadioButton.Checked = Content.ExactBins;
+          displayNameTextBox.Text = Content.DisplayName;
         }
       } finally { SuppressEvents = false; }
@@ -168,4 +170,13 @@
       }
     }
+
+    private void displayNameTextBox_Validated(object sender, EventArgs e) {
+      if (!SuppressEvents && Content != null) {
+        SuppressEvents = true;
+        try {
+          Content.DisplayName = displayNameTextBox.Text;
+        } finally { SuppressEvents = false; }
+      }
+    }
     #endregion
   }
Index: branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataTableHistoryView.cs
===================================================================
--- branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataTableHistoryView.cs	(revision 6594)
+++ branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataTableHistoryView.cs	(revision 6610)
@@ -20,4 +20,5 @@
 #endregion
 
+using System.Collections.Generic;
 using System.Windows.Forms;
 using HeuristicLab.Core.Views;
@@ -38,9 +39,19 @@
       using (DataTableVisualPropertiesDialog dialog = new DataTableVisualPropertiesDialog(current)) {
         if (dialog.ShowDialog() != DialogResult.OK) return;
+        Dictionary<string, bool> changeDisplayName = new Dictionary<string, bool>();
+        foreach (DataRow row in current.Rows) {
+          var answer = MessageBox.Show("Change display name for series " + row.Name + " to " + row.VisualProperties.DisplayName + " for all frames?", "Confirm change", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
+          if (answer == DialogResult.Cancel) return;
+          changeDisplayName[row.Name] = (answer == DialogResult.Yes);
+        }
         foreach (DataTable dt in Content) {
-          if (current != dt) {
-            dt.VisualProperties = (DataTableVisualProperties)current.VisualProperties.Clone();
-            foreach (DataRow row in current.Rows)
-              dt.Rows[row.Name].VisualProperties = (DataRowVisualProperties)row.VisualProperties.Clone();
+          if (current == dt) continue;
+          dt.VisualProperties = (DataTableVisualProperties)current.VisualProperties.Clone();
+          foreach (DataRow row in current.Rows) {
+            if (!dt.Rows.ContainsKey(row.Name)) continue;
+            string oldDisplayName = dt.Rows[row.Name].VisualProperties.DisplayName;
+            var props = (DataRowVisualProperties)row.VisualProperties.Clone();
+            if (!changeDisplayName[row.Name]) props.DisplayName = oldDisplayName;
+            dt.Rows[row.Name].VisualProperties = props;
           }
         }
Index: branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataTableView.cs
===================================================================
--- branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataTableView.cs	(revision 6594)
+++ branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataTableView.cs	(revision 6610)
@@ -159,4 +159,6 @@
     protected virtual void AddDataRow(DataRow row) {
       Series series = new Series(row.Name);
+      if (row.VisualProperties.DisplayName.Trim() != String.Empty) series.LegendText = row.VisualProperties.DisplayName;
+      else series.LegendText = row.Name;
       ConfigureSeries(series, row);
       FillSeriesWithRowValues(series, row);
@@ -212,5 +214,7 @@
       series.YAxisType = row.VisualProperties.SecondYAxis ? AxisType.Secondary : AxisType.Primary;
       series.XAxisType = row.VisualProperties.SecondXAxis ? AxisType.Secondary : AxisType.Primary;
-      series.ToolTip = row.Name + " X = #INDEX, Y = #VAL";
+      if (row.VisualProperties.DisplayName.Trim() != String.Empty) series.LegendText = row.VisualProperties.DisplayName;
+      else series.LegendText = row.Name;
+      series.ToolTip = series.LegendText + " X = #INDEX, Y = #VAL";
     }
 
Index: branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataTableVisualPropertiesDialog.Designer.cs
===================================================================
--- branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataTableVisualPropertiesDialog.Designer.cs	(revision 6594)
+++ branches/QAPAlgorithms/HeuristicLab.Analysis.Views/3.3/DataTableVisualPropertiesDialog.Designer.cs	(revision 6610)
@@ -69,5 +69,5 @@
       this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.okButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.okButton.Location = new System.Drawing.Point(307, 357);
+      this.okButton.Location = new System.Drawing.Point(307, 381);
       this.okButton.Name = "okButton";
       this.okButton.Size = new System.Drawing.Size(75, 23);
@@ -81,5 +81,5 @@
       this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-      this.cancelButton.Location = new System.Drawing.Point(388, 357);
+      this.cancelButton.Location = new System.Drawing.Point(388, 381);
       this.cancelButton.Name = "cancelButton";
       this.cancelButton.Size = new System.Drawing.Size(75, 23);
@@ -99,5 +99,5 @@
       this.tabControl.Name = "tabControl";
       this.tabControl.SelectedIndex = 0;
-      this.tabControl.Size = new System.Drawing.Size(474, 350);
+      this.tabControl.Size = new System.Drawing.Size(474, 374);
       this.tabControl.TabIndex = 2;
       // 
@@ -108,5 +108,5 @@
       this.seriesTabPage.Name = "seriesTabPage";
       this.seriesTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.seriesTabPage.Size = new System.Drawing.Size(466, 324);
+      this.seriesTabPage.Size = new System.Drawing.Size(466, 348);
       this.seriesTabPage.TabIndex = 0;
       this.seriesTabPage.Text = "Series";
@@ -131,5 +131,5 @@
       this.splitContainer.Panel2.Controls.Add(this.dataRowVisualPropertiesControl);
       this.splitContainer.Panel2MinSize = 50;
-      this.splitContainer.Size = new System.Drawing.Size(460, 318);
+      this.splitContainer.Size = new System.Drawing.Size(460, 342);
       this.splitContainer.SplitterDistance = 125;
       this.splitContainer.TabIndex = 0;
@@ -165,5 +165,5 @@
       this.seriesListView.Name = "seriesListView";
       this.seriesListView.ShowGroups = false;
-      this.seriesListView.Size = new System.Drawing.Size(125, 289);
+      this.seriesListView.Size = new System.Drawing.Size(125, 313);
       this.seriesListView.TabIndex = 0;
       this.seriesListView.UseCompatibleStateImageBehavior = false;
@@ -177,5 +177,5 @@
       this.dataRowVisualPropertiesControl.Location = new System.Drawing.Point(0, 0);
       this.dataRowVisualPropertiesControl.Name = "dataRowVisualPropertiesControl";
-      this.dataRowVisualPropertiesControl.Size = new System.Drawing.Size(331, 318);
+      this.dataRowVisualPropertiesControl.Size = new System.Drawing.Size(331, 342);
       this.dataRowVisualPropertiesControl.TabIndex = 0;
       // 
@@ -206,5 +206,5 @@
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
       this.CancelButton = this.cancelButton;
-      this.ClientSize = new System.Drawing.Size(475, 392);
+      this.ClientSize = new System.Drawing.Size(475, 416);
       this.Controls.Add(this.tabControl);
       this.Controls.Add(this.cancelButton);
Index: branches/QAPAlgorithms/HeuristicLab.Analysis/3.3/DataVisualization/DataRow.cs
===================================================================
--- branches/QAPAlgorithms/HeuristicLab.Analysis/3.3/DataVisualization/DataRow.cs	(revision 6594)
+++ branches/QAPAlgorithms/HeuristicLab.Analysis/3.3/DataVisualization/DataRow.cs	(revision 6610)
@@ -83,15 +83,15 @@
     public DataRow(string name)
       : base(name) {
-      VisualProperties = new DataRowVisualProperties();
+      VisualProperties = new DataRowVisualProperties(name);
       values = new ObservableList<double>();
     }
     public DataRow(string name, string description)
       : base(name, description) {
-      VisualProperties = new DataRowVisualProperties();
+      VisualProperties = new DataRowVisualProperties(name);
       values = new ObservableList<double>();
     }
     public DataRow(string name, string description, IEnumerable<double> values)
       : base(name, description) {
-      VisualProperties = new DataRowVisualProperties();
+      VisualProperties = new DataRowVisualProperties(name);
       this.values = new ObservableList<double>(values);
     }
Index: branches/QAPAlgorithms/HeuristicLab.Analysis/3.3/DataVisualization/DataRowVisualProperties.cs
===================================================================
--- branches/QAPAlgorithms/HeuristicLab.Analysis/3.3/DataVisualization/DataRowVisualProperties.cs	(revision 6594)
+++ branches/QAPAlgorithms/HeuristicLab.Analysis/3.3/DataVisualization/DataRowVisualProperties.cs	(revision 6610)
@@ -20,4 +20,5 @@
 #endregion
 
+using System;
 using System.ComponentModel;
 using System.Drawing;
@@ -141,4 +142,19 @@
       }
     }
+    private string displayName;
+    public string DisplayName {
+      get { return displayName == null ? String.Empty : displayName; }
+      set {
+        if (displayName != value) {
+          if (value == null && displayName != String.Empty) {
+            displayName = String.Empty;
+            OnPropertyChanged("DisplayName");
+          } else if (value != null) {
+            displayName = value;
+            OnPropertyChanged("DisplayName");
+          }
+        }
+      }
+    }
 
     #region Persistence Properties
@@ -187,4 +203,9 @@
       get { return exactBins; }
       set { exactBins = value; }
+    }
+    [Storable(Name = "DisplayName")]
+    private string StorableDisplayName {
+      get { return displayName; }
+      set { displayName = value; }
     }
     #endregion
@@ -203,4 +224,5 @@
       this.bins = original.bins;
       this.exactBins = original.exactBins;
+      this.displayName = original.displayName;
     }
     public DataRowVisualProperties() {
@@ -214,4 +236,9 @@
       bins = 10;
       exactBins = false;
+      displayName = String.Empty;
+    }
+    public DataRowVisualProperties(string displayName)
+      : this() {
+      this.displayName = displayName;
     }
 
Index: branches/QAPAlgorithms/HeuristicLab.Analysis/3.3/QualityAnalysis/QualityDistributionAnalyzer.cs
===================================================================
--- branches/QAPAlgorithms/HeuristicLab.Analysis/3.3/QualityAnalysis/QualityDistributionAnalyzer.cs	(revision 6594)
+++ branches/QAPAlgorithms/HeuristicLab.Analysis/3.3/QualityAnalysis/QualityDistributionAnalyzer.cs	(revision 6610)
@@ -126,5 +126,5 @@
           string appendix = " at " + iterationName + " " + iteration.Value.ToString();
           table.Name += appendix;
-          table.Rows["QualityDistribution"].Name += appendix;
+          table.Rows["QualityDistribution"].VisualProperties.DisplayName += appendix;
         }
         qdHistory.Add(table);
