Index: trunk/sources/HeuristicLab.Visualization.Test/LineChartTests.cs
===================================================================
--- trunk/sources/HeuristicLab.Visualization.Test/LineChartTests.cs	(revision 1456)
+++ trunk/sources/HeuristicLab.Visualization.Test/LineChartTests.cs	(revision 1457)
@@ -84,4 +84,7 @@
       yaxis1.Label = "Y-Axis 1";
       yaxis2.Label = "Y-Axis 2";
+
+      yaxis1.Position = AxisPosition.Left;
+      yaxis2.Position = AxisPosition.Right;
 
       row1.Color = Color.Red;
@@ -500,6 +503,4 @@
     }
 
-
-
     [Test]
     public void TestMainForm() {
Index: trunk/sources/HeuristicLab.Visualization/AxisPosition.cs
===================================================================
--- trunk/sources/HeuristicLab.Visualization/AxisPosition.cs	(revision 1457)
+++ trunk/sources/HeuristicLab.Visualization/AxisPosition.cs	(revision 1457)
@@ -0,0 +1,6 @@
+namespace HeuristicLab.Visualization.Test {
+  public enum AxisPosition {
+    Left,
+    Right
+  }
+}
Index: trunk/sources/HeuristicLab.Visualization/HeuristicLab.Visualization.csproj
===================================================================
--- trunk/sources/HeuristicLab.Visualization/HeuristicLab.Visualization.csproj	(revision 1456)
+++ trunk/sources/HeuristicLab.Visualization/HeuristicLab.Visualization.csproj	(revision 1457)
@@ -4,5 +4,5 @@
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.21022</ProductVersion>
+    <ProductVersion>9.0.30729</ProductVersion>
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{E392A1E2-DC95-4E33-B82E-8ED690EDA1AB}</ProjectGuid>
@@ -70,4 +70,5 @@
     <Compile Include="AvgAggregator.cs" />
     <Compile Include="AvgLineAggregator.cs" />
+    <Compile Include="AxisPosition.cs" />
     <Compile Include="AxisTicks.cs" />
     <Compile Include="Canvas.cs" />
Index: trunk/sources/HeuristicLab.Visualization/LineChart.cs
===================================================================
--- trunk/sources/HeuristicLab.Visualization/LineChart.cs	(revision 1456)
+++ trunk/sources/HeuristicLab.Visualization/LineChart.cs	(revision 1457)
@@ -6,4 +6,5 @@
 using HeuristicLab.Visualization.Legend;
 using HeuristicLab.Visualization.Options;
+using HeuristicLab.Visualization.Test;
 
 namespace HeuristicLab.Visualization {
@@ -93,5 +94,6 @@
       canvas.AddShape(xAxis);
 
-      int yAxesWidth = 0;
+      int yAxesWidthLeft = 0;
+      int yAxesWidthRight = 0;
 
       foreach (YAxisDescriptor yAxisDescriptor in model.YAxes) {
@@ -99,5 +101,15 @@
         if (yAxisDescriptor.ShowYAxis) {
           canvas.AddShape(info.YAxis);
-          yAxesWidth += YAxisWidth;
+          info.YAxis.Position = yAxisDescriptor.Position;
+          switch (yAxisDescriptor.Position) {
+            case AxisPosition.Left:
+              yAxesWidthLeft += YAxisWidth;
+              break;
+            case AxisPosition.Right:
+              yAxesWidthRight += YAxisWidth;
+              break;
+            default:
+              throw new NotImplementedException();
+          }
         }
       }
@@ -111,7 +123,7 @@
       titleShape.Y = canvasUI.Height - 10;
 
-      RectangleD linesAreaBoundingBox = new RectangleD(yAxesWidth,
+      RectangleD linesAreaBoundingBox = new RectangleD(yAxesWidthLeft,
                                                        XAxisHeight,
-                                                       canvasUI.Width,
+                                                       canvasUI.Width - yAxesWidthRight,
                                                        canvasUI.Height);
 
@@ -126,12 +138,27 @@
 
       int yAxisLeft = 0;
+      int yAxisRight = (int)linesAreaBoundingBox.X2;
+
       foreach (YAxisDescriptor yAxisDescriptor in model.YAxes) {
         YAxisInfo info = GetYAxisInfo(yAxisDescriptor);
         if (yAxisDescriptor.ShowYAxis) {
-          info.YAxis.BoundingBox = new RectangleD(yAxisLeft,
-                                                 linesAreaBoundingBox.Y1,
-                                                 yAxisLeft + YAxisWidth,
-                                                 linesAreaBoundingBox.Y2);
-          yAxisLeft += YAxisWidth;
+          switch (yAxisDescriptor.Position) {
+            case AxisPosition.Left:
+              info.YAxis.BoundingBox = new RectangleD(yAxisLeft,
+                                                      linesAreaBoundingBox.Y1,
+                                                      yAxisLeft + YAxisWidth,
+                                                      linesAreaBoundingBox.Y2);
+              yAxisLeft += YAxisWidth;
+              break;
+            case AxisPosition.Right:
+              info.YAxis.BoundingBox = new RectangleD(yAxisRight,
+                                                      linesAreaBoundingBox.Y1,
+                                                      yAxisRight + YAxisWidth,
+                                                      linesAreaBoundingBox.Y2);
+              yAxisRight += YAxisWidth;
+              break;
+            default:
+              throw new NotImplementedException();
+          }
         }
       }
Index: trunk/sources/HeuristicLab.Visualization/YAxis.cs
===================================================================
--- trunk/sources/HeuristicLab.Visualization/YAxis.cs	(revision 1456)
+++ trunk/sources/HeuristicLab.Visualization/YAxis.cs	(revision 1457)
@@ -1,4 +1,6 @@
+using System;
 using System.Drawing;
 using HeuristicLab.Visualization.LabelProvider;
+using HeuristicLab.Visualization.Test;
 
 namespace HeuristicLab.Visualization {
@@ -7,8 +9,14 @@
 
     private ILabelProvider labelProvider = new ContinuousLabelProvider("e4");
+    private AxisPosition position = AxisPosition.Left;
 
     public ILabelProvider LabelProvider {
       get { return labelProvider; }
       set { labelProvider = value; }
+    }
+
+    public AxisPosition Position {
+      get { return position; }
+      set { position = value; }
     }
 
@@ -19,7 +27,22 @@
                                               ClippingArea.Height,
                                               ClippingArea.Y1)) {
-        TextShape label = new TextShape(ClippingArea.X2 - 3, y,
-                                        labelProvider.GetLabel(y));
-        label.AnchorPositionX = AnchorPositionX.Right;
+        double x;
+        AnchorPositionX anchorPositionX;
+
+        switch (position) {
+          case AxisPosition.Left:
+            x = ClippingArea.X2 - 3;
+            anchorPositionX = AnchorPositionX.Right;
+            break;
+          case AxisPosition.Right:
+            x = ClippingArea.X1 + 3;
+            anchorPositionX = AnchorPositionX.Left;
+            break;
+          default:
+            throw new NotImplementedException();
+        }
+        
+        TextShape label = new TextShape(x, y, labelProvider.GetLabel(y));
+        label.AnchorPositionX = anchorPositionX;
         label.AnchorPositionY = AnchorPositionY.Middle;
         AddShape(label);
Index: trunk/sources/HeuristicLab.Visualization/YAxisDescriptor.cs
===================================================================
--- trunk/sources/HeuristicLab.Visualization/YAxisDescriptor.cs	(revision 1456)
+++ trunk/sources/HeuristicLab.Visualization/YAxisDescriptor.cs	(revision 1457)
@@ -2,4 +2,5 @@
 using System.Collections.Generic;
 using HeuristicLab.Visualization.LabelProvider;
+using HeuristicLab.Visualization.Test;
 
 namespace HeuristicLab.Visualization {
@@ -12,4 +13,5 @@
     private string label = "";
     public bool ClipChangeable = true;
+    private AxisPosition position = AxisPosition.Left;
 
     public event YAxisDescriptorChangedHandler YAxisDescriptorChanged;
@@ -78,4 +80,9 @@
     }
 
+    public AxisPosition Position {
+      get { return position; }
+      set { position = value; }
+    }
+
     public void AddDataRow(IDataRow row) {
       if (row.YAxis != null) {
