Index: /trunk/sources/HeuristicLab.Analysis.Views/3.3/DataTableView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Analysis.Views/3.3/DataTableView.Designer.cs	(revision 4777)
+++ /trunk/sources/HeuristicLab.Analysis.Views/3.3/DataTableView.Designer.cs	(revision 4778)
@@ -71,4 +71,5 @@
       this.chart.BorderlineColor = System.Drawing.Color.Black;
       this.chart.BorderlineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Solid;
+      defaultChartArea.AxisX.Minimum = 0;
       defaultChartArea.CursorX.IsUserEnabled = true;
       defaultChartArea.CursorX.IsUserSelectionEnabled = true;
Index: /trunk/sources/HeuristicLab.Analysis.Views/3.3/DataTableView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Analysis.Views/3.3/DataTableView.cs	(revision 4777)
+++ /trunk/sources/HeuristicLab.Analysis.Views/3.3/DataTableView.cs	(revision 4778)
@@ -280,14 +280,16 @@
           Series rowSeries = chart.Series[row.Name];
           if (!invisibleSeries.Contains(rowSeries)) {
-            foreach (IndexedItem<double> item in e.Items) {
-              var value = item.Value;
-              if (IsInvalidValue(item.Value)) {
-                DataPoint point = new DataPoint();
-                point.IsEmpty = true;
-                rowSeries.Points.Insert(item.Index, point);
-              } else {
-                rowSeries.Points.InsertY(item.Index, value);
-              }
-            }
+            rowSeries.Points.Clear();
+            FillSeriesWithRowValues(rowSeries, row);
+            //foreach (IndexedItem<double> item in e.Items) {
+            //  var value = item.Value;
+            //  DataPoint point = new DataPoint();
+            //  point.XValue = row.VisualProperties.StartIndexZero ? item.Index : item.Index + 1;
+            //  if (IsInvalidValue(item.Value))
+            //    point.IsEmpty = true;
+            //  else
+            //    point.YValues = new double[] { value };
+            //  rowSeries.Points.Add(point);
+            //}
             UpdateYCursorInterval();
           }
@@ -304,9 +306,11 @@
           Series rowSeries = chart.Series[row.Name];
           if (!invisibleSeries.Contains(rowSeries)) {
-            List<DataPoint> points = new List<DataPoint>();
-            foreach (IndexedItem<double> item in e.Items)
-              points.Add(rowSeries.Points[item.Index]);
-            foreach (DataPoint point in points)
-              rowSeries.Points.Remove(point);
+            rowSeries.Points.Clear();
+            FillSeriesWithRowValues(rowSeries, row);
+            //List<DataPoint> points = new List<DataPoint>();
+            //foreach (IndexedItem<double> item in e.Items)
+            //  points.Add(rowSeries.Points[item.Index]);
+            //foreach (DataPoint point in points)
+            //  rowSeries.Points.Remove(point);
             UpdateYCursorInterval();
           }
@@ -345,12 +349,6 @@
           Series rowSeries = chart.Series[row.Name];
           if (!invisibleSeries.Contains(rowSeries)) {
-            foreach (IndexedItem<double> item in e.Items) {
-              if (IsInvalidValue(item.Value))
-                rowSeries.Points[item.Index].IsEmpty = true;
-              else {
-                rowSeries.Points[item.Index].YValues = new double[] { item.Value };
-                rowSeries.Points[item.Index].IsEmpty = false;
-              }
-            }
+            rowSeries.Points.Clear();
+            FillSeriesWithRowValues(rowSeries, row);
             UpdateYCursorInterval();
           }
@@ -369,14 +367,7 @@
           if (!invisibleSeries.Contains(rowSeries)) {
             rowSeries.Points.Clear();
-            foreach (IndexedItem<double> item in e.Items) {
-              if (IsInvalidValue(item.Value))
-                rowSeries.Points[item.Index].IsEmpty = true;
-              else {
-                rowSeries.Points[item.Index].YValues = new double[] { item.Value };
-                rowSeries.Points[item.Index].IsEmpty = false;
-              }
-            }
-          }
-          UpdateYCursorInterval();
+            FillSeriesWithRowValues(rowSeries, row);
+            UpdateYCursorInterval();
+          }
         }
       }
@@ -413,11 +404,11 @@
       for (int i = 0; i < row.Values.Count; i++) {
         var value = row.Values[i];
-        if (IsInvalidValue(value)) {
-          DataPoint point = new DataPoint();
+        DataPoint point = new DataPoint();
+        point.XValue = row.VisualProperties.StartIndexZero ? i : i + 1;
+        if (IsInvalidValue(value))
           point.IsEmpty = true;
-          series.Points.Add(point);
-        } else {
-          series.Points.Add(value);
-        }
+        else
+          point.YValues = new double[] { value };
+        series.Points.Add(point);
       }
     }
Index: /trunk/sources/HeuristicLab.Analysis/3.3/AlleleFrequencyAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Analysis/3.3/AlleleFrequencyAnalyzer.cs	(revision 4777)
+++ /trunk/sources/HeuristicLab.Analysis/3.3/AlleleFrequencyAnalyzer.cs	(revision 4778)
@@ -166,4 +166,5 @@
 
           allelesTable.Rows.Add(new DataRow("Unique Alleles"));
+          allelesTable.Rows["Unique Alleles"].VisualProperties.StartIndexZero = true;
 
           allelesTable.Rows.Add(new DataRow("Unique Alleles of Best Known Solution", null));
