Index: branches/histogram/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.Designer.cs
===================================================================
--- branches/histogram/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.Designer.cs	(revision 6010)
+++ branches/histogram/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.Designer.cs	(revision 6011)
@@ -57,4 +57,5 @@
       this.commonGroupBox = new System.Windows.Forms.GroupBox();
       this.histoGramGroupBox = new System.Windows.Forms.GroupBox();
+      this.secondXAxisCheckBox = new System.Windows.Forms.CheckBox();
       ((System.ComponentModel.ISupportInitialize)(this.binsNumericUpDown)).BeginInit();
       this.commonGroupBox.SuspendLayout();
@@ -104,5 +105,5 @@
       this.startIndexZeroCheckBox.AutoSize = true;
       this.startIndexZeroCheckBox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
-      this.startIndexZeroCheckBox.Location = new System.Drawing.Point(17, 98);
+      this.startIndexZeroCheckBox.Location = new System.Drawing.Point(17, 121);
       this.startIndexZeroCheckBox.Name = "startIndexZeroCheckBox";
       this.startIndexZeroCheckBox.Size = new System.Drawing.Size(89, 17);
@@ -164,4 +165,5 @@
                   | System.Windows.Forms.AnchorStyles.Right)));
       this.commonGroupBox.Controls.Add(this.colorButton);
+      this.commonGroupBox.Controls.Add(this.secondXAxisCheckBox);
       this.commonGroupBox.Controls.Add(this.secondYAxisCheckBox);
       this.commonGroupBox.Controls.Add(this.label1);
@@ -171,5 +173,5 @@
       this.commonGroupBox.Location = new System.Drawing.Point(3, 3);
       this.commonGroupBox.Name = "commonGroupBox";
-      this.commonGroupBox.Size = new System.Drawing.Size(473, 122);
+      this.commonGroupBox.Size = new System.Drawing.Size(473, 142);
       this.commonGroupBox.TabIndex = 7;
       this.commonGroupBox.TabStop = false;
@@ -183,5 +185,5 @@
       this.histoGramGroupBox.Controls.Add(this.exactBinsCheckBox);
       this.histoGramGroupBox.Controls.Add(this.label3);
-      this.histoGramGroupBox.Location = new System.Drawing.Point(3, 131);
+      this.histoGramGroupBox.Location = new System.Drawing.Point(3, 151);
       this.histoGramGroupBox.Name = "histoGramGroupBox";
       this.histoGramGroupBox.Size = new System.Drawing.Size(473, 49);
@@ -190,4 +192,16 @@
       this.histoGramGroupBox.Text = "Histogram";
       // 
+      // secondXAxisCheckBox
+      // 
+      this.secondXAxisCheckBox.AutoSize = true;
+      this.secondXAxisCheckBox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
+      this.secondXAxisCheckBox.Location = new System.Drawing.Point(8, 98);
+      this.secondXAxisCheckBox.Name = "secondXAxisCheckBox";
+      this.secondXAxisCheckBox.Size = new System.Drawing.Size(98, 17);
+      this.secondXAxisCheckBox.TabIndex = 1;
+      this.secondXAxisCheckBox.Text = "Second X Axis:";
+      this.secondXAxisCheckBox.UseVisualStyleBackColor = true;
+      this.secondXAxisCheckBox.CheckedChanged += new System.EventHandler(this.secondXAxisCheckBox_CheckedChanged);
+      // 
       // DataRowVisualPropertiesControl
       // 
@@ -197,5 +211,5 @@
       this.Controls.Add(this.commonGroupBox);
       this.Name = "DataRowVisualPropertiesControl";
-      this.Size = new System.Drawing.Size(479, 185);
+      this.Size = new System.Drawing.Size(479, 205);
       ((System.ComponentModel.ISupportInitialize)(this.binsNumericUpDown)).EndInit();
       this.commonGroupBox.ResumeLayout(false);
@@ -221,4 +235,5 @@
     private System.Windows.Forms.GroupBox commonGroupBox;
     private System.Windows.Forms.GroupBox histoGramGroupBox;
+    private System.Windows.Forms.CheckBox secondXAxisCheckBox;
   }
 }
Index: branches/histogram/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.cs
===================================================================
--- branches/histogram/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.cs	(revision 6010)
+++ branches/histogram/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.cs	(revision 6011)
@@ -53,4 +53,5 @@
           colorButton.BackColor = SystemColors.Control;
           secondYAxisCheckBox.Checked = false;
+          secondXAxisCheckBox.Checked = false;
           startIndexZeroCheckBox.Checked = false;
           binsNumericUpDown.Value = 1;
@@ -58,6 +59,10 @@
         } else {
           chartTypeComboBox.SelectedItem = Content.ChartType;
-          colorButton.BackColor = Content.Color;
+          if (Content.Color.IsEmpty) {
+            colorButton.BackColor = SystemColors.Control;
+            colorButton.Text = "?";
+          } else colorButton.BackColor = Content.Color;
           secondYAxisCheckBox.Checked = Content.SecondYAxis;
+          secondXAxisCheckBox.Checked = Content.SecondXAxis;
           startIndexZeroCheckBox.Checked = Content.StartIndexZero;
           binsNumericUpDown.Value = Content.Bins;
@@ -85,4 +90,5 @@
         Content.Color = colorDialog.Color;
         colorButton.BackColor = Content.Color;
+        colorButton.Text = String.Empty;
       }
     }
@@ -91,4 +97,10 @@
       if (!SuppressEvents && Content != null) {
         Content.SecondYAxis = secondYAxisCheckBox.Checked;
+      }
+    }
+
+    private void secondXAxisCheckBox_CheckedChanged(object sender, EventArgs e) {
+      if (!SuppressEvents && Content != null) {
+        Content.SecondXAxis = secondXAxisCheckBox.Checked;
       }
     }
Index: branches/histogram/HeuristicLab.Analysis.Views/3.3/DataTableView.cs
===================================================================
--- branches/histogram/HeuristicLab.Analysis.Views/3.3/DataTableView.cs	(revision 6010)
+++ branches/histogram/HeuristicLab.Analysis.Views/3.3/DataTableView.cs	(revision 6011)
@@ -142,4 +142,5 @@
       }
       series.YAxisType = row.VisualProperties.SecondYAxis ? AxisType.Secondary : AxisType.Primary;
+      series.XAxisType = row.VisualProperties.SecondXAxis ? AxisType.Secondary : AxisType.Primary;
       if (row.VisualProperties.Color != Color.Empty) series.Color = row.VisualProperties.Color;
       series.ToolTip = row.Name + " X = #INDEX, Y = #VAL";
@@ -305,4 +306,5 @@
             chart.Series[row.Name].ChartType = SeriesChartType.Column;
             chart.Series[row.Name]["PointWidth"] = "1";
+            CalculateHistogram(chart.Series[row.Name], row);
             break;
           default:
@@ -311,4 +313,5 @@
         }
         chart.Series[row.Name].YAxisType = row.VisualProperties.SecondYAxis ? AxisType.Secondary : AxisType.Primary;
+        chart.Series[row.Name].XAxisType = row.VisualProperties.SecondXAxis ? AxisType.Secondary : AxisType.Primary;
         if (row.VisualProperties.Color != Color.Empty) chart.Series[row.Name].Color = row.VisualProperties.Color;
         chart.ChartAreas[0].RecalculateAxesScale();
@@ -444,43 +447,51 @@
 
     private void FillSeriesWithRowValues(Series series, DataRow row) {
-      if (row.VisualProperties.ChartType == DataRowVisualProperties.DataRowChartType.Histogram) {
-        series.Points.Clear();
-        if (!row.Values.Any()) return;
-        int bins = row.VisualProperties.Bins;
-
-        double minValue = row.Values.Min();
-        double maxValue = row.Values.Max();
-        double intervalWidth = (maxValue - minValue) / bins;
-        if (intervalWidth <= 0) return;
-
-        if (!row.VisualProperties.ExactBins) {
-          intervalWidth = HumanRoundRange(intervalWidth);
-          minValue = Math.Floor(minValue / intervalWidth) * intervalWidth;
-          maxValue = Math.Ceiling(maxValue / intervalWidth) * intervalWidth;
-        }
-
-        double current = minValue, intervalCenter = intervalWidth / 2.0;
-        int frequency = 0;
-        foreach (double v in row.Values.Where(x => !IsInvalidValue(x)).OrderBy(x => x)) {
-          while (v > current + intervalWidth) {
-            series.Points.AddXY(current + intervalCenter, frequency);
-            current += intervalWidth;
-            frequency = 0;
-          }
-          frequency++;
-        }
-        series.Points.AddXY(current + intervalCenter, frequency);
-      } else {
-        for (int i = 0; i < row.Values.Count; i++) {
-          var value = row.Values[i];
-          DataPoint point = new DataPoint();
-          point.XValue = row.VisualProperties.StartIndexZero ? i : i + 1;
-          if (IsInvalidValue(value))
-            point.IsEmpty = true;
-          else
-            point.YValues = new double[] { value };
-          series.Points.Add(point);
-        }
-      }
+      switch (row.VisualProperties.ChartType) {
+        case DataRowVisualProperties.DataRowChartType.Histogram:
+          CalculateHistogram(series, row);
+          break;
+        default: {
+            for (int i = 0; i < row.Values.Count; i++) {
+              var value = row.Values[i];
+              DataPoint point = new DataPoint();
+              point.XValue = row.VisualProperties.StartIndexZero ? i : i + 1;
+              if (IsInvalidValue(value))
+                point.IsEmpty = true;
+              else
+                point.YValues = new double[] { value };
+              series.Points.Add(point);
+            }
+          }
+          break;
+      }
+    }
+
+    private void CalculateHistogram(Series series, DataRow row) {
+      series.Points.Clear();
+      if (!row.Values.Any()) return;
+      int bins = row.VisualProperties.Bins;
+
+      double minValue = row.Values.Min();
+      double maxValue = row.Values.Max();
+      double intervalWidth = (maxValue - minValue) / bins;
+      if (intervalWidth <= 0) return;
+
+      if (!row.VisualProperties.ExactBins) {
+        intervalWidth = HumanRoundRange(intervalWidth);
+        minValue = Math.Floor(minValue / intervalWidth) * intervalWidth;
+        maxValue = Math.Ceiling(maxValue / intervalWidth) * intervalWidth;
+      }
+
+      double current = minValue, intervalCenter = intervalWidth / 2.0;
+      int frequency = 0;
+      foreach (double v in row.Values.Where(x => !IsInvalidValue(x)).OrderBy(x => x)) {
+        while (v > current + intervalWidth) {
+          series.Points.AddXY(current + intervalCenter, frequency);
+          current += intervalWidth;
+          frequency = 0;
+        }
+        frequency++;
+      }
+      series.Points.AddXY(current + intervalCenter, frequency);
     }
 
Index: branches/histogram/HeuristicLab.Analysis.Views/3.3/DataTableVisualPropertiesDialog.cs
===================================================================
--- branches/histogram/HeuristicLab.Analysis.Views/3.3/DataTableVisualPropertiesDialog.cs	(revision 6010)
+++ branches/histogram/HeuristicLab.Analysis.Views/3.3/DataTableVisualPropertiesDialog.cs	(revision 6011)
@@ -64,8 +64,8 @@
     private void cancelButton_Click(object sender, System.EventArgs e) {
       DialogResult = DialogResult.Cancel;
-      Content.VisualProperties = originalDataTableVPs;
       foreach (DataRow row in Content.Rows) {
         row.VisualProperties = originalDataRowVPs[row.Name];
       }
+      Content.VisualProperties = originalDataTableVPs;
       Close();
     }
