Index: /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Analyzers/SymbolicExpressionTreeLengthAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Analyzers/SymbolicExpressionTreeLengthAnalyzer.cs	(revision 7149)
+++ /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Analyzers/SymbolicExpressionTreeLengthAnalyzer.cs	(revision 7150)
@@ -46,5 +46,4 @@
     private const string UpdateIntervalParameterName = "UpdateInterval";
     private const string UpdateCounterParameterName = "UpdateCounter";
-    private const string GenerationCounterParameterName = "GenerationCounter";
 
     #region Parameter properties
@@ -71,7 +70,4 @@
       get { return (ValueParameter<IntValue>)Parameters[UpdateCounterParameterName]; }
     }
-    public ValueParameter<IntValue> GenerationCounterParameter {
-      get { return (ValueParameter<IntValue>)Parameters[GenerationCounterParameterName]; }
-    }
     #endregion
 
@@ -86,8 +82,4 @@
       get { return StoreHistoryParameter.Value; }
     }
-    public IntValue GenerationCounter {
-      get { return GenerationCounterParameter.Value; }
-    }
-
     #endregion
 
@@ -111,7 +103,4 @@
       Parameters.Add(new ValueParameter<IntValue>(UpdateIntervalParameterName, "The interval in which the tree length analysis should be applied.", new IntValue(1)));
       Parameters.Add(new ValueParameter<IntValue>(UpdateCounterParameterName, "The value which counts how many times the operator was called since the last update", new IntValue(0)));
-      Parameters.Add(new ValueParameter<IntValue>(GenerationCounterParameterName, "The value of the total number of generations this operator has been applied.", new IntValue(0)));
-
-      UpdateCounterParameter.Hidden = true;
 
       AfterDeserialization();
@@ -130,15 +119,13 @@
         Parameters.Remove(UpdateCounterParameterName);
       Parameters.Add(new ValueParameter<IntValue>(UpdateCounterParameterName, "The value which counts how many times the operator was called since the last update", new IntValue(0)));
-      if (!Parameters.ContainsKey(GenerationCounterParameterName)) {
-        Parameters.Add(new ValueParameter<IntValue>(GenerationCounterParameterName, "The value of the total number of generations this operator has been applied.", new IntValue(1)));
-      }
+
+      SymbolicExpressionTreeLengthsParameter.Hidden = true;
+      SymbolicExpressionTreeLengthsHistoryParameter.Hidden = true;
+      ResultsParameter.Hidden = true;
+      UpdateCounterParameter.Hidden = true;
     }
 
     public override IOperation Apply() {
-      //IntValue updateCounter = UpdateCounterParameter.Value;
-      // if the counter doesn't exist yet, we initialize it here with the current update interval
-      GenerationCounter.Value++;
       UpdateCounter.Value++;
-
       // the analyzer runs periodically, every 'updateInterval' times
       if (UpdateCounter.Value == UpdateInterval.Value) {
@@ -213,7 +200,7 @@
         treeLengthsTable.VisualProperties.YAxisMinimumFixedValue = 0.0;
         int maxFreq = solutions.GroupBy(s => s.Length).Max(g => g.Count());
-        double yAxisMaximumFixedValue = Math.Ceiling(solutions.Length / 2.0) > maxFreq ? Math.Ceiling(solutions.Length / 2.0) : maxFreq;
-        // round up yAxisMaximumFixedValue to the nearest multiple of 5, so it would look nice in the chart
-        yAxisMaximumFixedValue = yAxisMaximumFixedValue + 5 - ((int)yAxisMaximumFixedValue % 5);
+        if (maxFreq % 5 != 0)
+          maxFreq += (5 - maxFreq % 5);
+        double yAxisMaximumFixedValue = maxFreq;
 
         treeLengthsTable.VisualProperties.YAxisMaximumFixedValue = yAxisMaximumFixedValue;
@@ -230,14 +217,14 @@
         bool storeHistory = StoreHistoryParameter.Value.Value;
         const string treeLengthHistoryTableName = "Tree lengths history";
-        const string treeLengthHistoryRowPrefix = "Tree lengths ";
 
         if (storeHistory) {
           // store tree lengths for each generation
-          var historyDataRow = new DataRow(treeLengthHistoryRowPrefix + GenerationCounter.Value, "Symbolic expression tree lengths at generation " + GenerationCounter.Value, treeLengthsTableRow.Values);
+          var historyDataRow = new DataRow("Tree lengths", "", treeLengthsTableRow.Values);
           historyDataRow.VisualProperties.ChartType = DataRowVisualProperties.DataRowChartType.Histogram;
           historyDataRow.VisualProperties.ExactBins = false;
           historyDataRow.VisualProperties.Bins = range;
           historyDataRow.VisualProperties.ScaleFactor = treeLengthsTableRow.VisualProperties.ScaleFactor;
-          var historyTable = new DataTable();
+          historyDataRow.VisualProperties.IsVisibleInLegend = false;
+          var historyTable = new DataTable("Tree lengths");
           historyTable.Rows.Add(historyDataRow);
           // visual properties for the X-axis
