diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/standalone/CSVChart.java b/xchart-demo/src/main/java/com/xeiam/xchart/standalone/CSVChart.java
index 72387636563aa524366d879f32861b989e3ba928..2ae38bfc1b2de70337f94093206da9c651a3714e 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/standalone/CSVChart.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/standalone/CSVChart.java
@@ -22,6 +22,7 @@
 package com.xeiam.xchart.standalone;
 
 import com.xeiam.xchart.CSVImporter;
+import com.xeiam.xchart.CSVImporter.DataOrientation;
 import com.xeiam.xchart.Chart;
 import com.xeiam.xchart.SwingWrapper;
 
@@ -33,11 +34,10 @@ public class CSVChart {
   public static void main(String[] args) throws Exception {
 
     // import chart from a folder containing CSV files
-    Chart chart = CSVImporter.getChartFromCSVDir("./CSV/CSVChart/", 600, 400);
+    Chart chart = CSVImporter.getChartFromCSVDir("./CSV/CSVChart/", DataOrientation.Rows, 600, 400);
 
     // Show it
     new SwingWrapper(chart).displayChart();
 
   }
-
 }
diff --git a/xchart/src/main/java/com/xeiam/xchart/CSVImporter.java b/xchart/src/main/java/com/xeiam/xchart/CSVImporter.java
index 593fa80db030be2b138ba8e27f3230ac600629e0..c79703b25c8cd353ee4084b16f47b33f96c8ab99 100644
--- a/xchart/src/main/java/com/xeiam/xchart/CSVImporter.java
+++ b/xchart/src/main/java/com/xeiam/xchart/CSVImporter.java
@@ -37,13 +37,18 @@ import java.util.List;
  */
 public class CSVImporter {
 
+  public enum DataOrientation {
+
+    Rows, Columns
+  }
+
   /**
    * @param path2Directory
    * @param width
    * @param height
    * @return
    */
-  public static Chart getChartFromCSVDir(String path2Directory, int width, int height) {
+  public static Chart getChartFromCSVDir(String path2Directory, DataOrientation dataOrientation, int width, int height) {
 
     // 1. get the directory, name chart the dir name
 
@@ -55,14 +60,19 @@ public class CSVImporter {
     // 3. create a series for each file, naming the series the file name
     for (int i = 0; i < csvFiles.length; i++) {
       File csvFile = csvFiles[i];
-      String[] xAndYData = getSeriesData(csvFile);
+      String[] xAndYData = null;
+      if (dataOrientation == DataOrientation.Rows) {
+        xAndYData = getSeriesDataFromCSVRows(csvFile);
+      } else {
+        xAndYData = getSeriesDataFromCSVColumns(csvFile);
+      }
       chart.addSeries(csvFile.getName().substring(0, csvFile.getName().indexOf(".csv")), getAxisData(xAndYData[0]), getAxisData(xAndYData[1]));
     }
 
     return chart;
   }
 
-  private static String[] getSeriesData(File csvFile) {
+  private static String[] getSeriesDataFromCSVRows(File csvFile) {
 
     String[] xAndYData = new String[2];
 
@@ -89,12 +99,43 @@ public class CSVImporter {
     return xAndYData;
   }
 
+  private static String[] getSeriesDataFromCSVColumns(File csvFile) {
+
+    String[] xAndYData = new String[2];
+    xAndYData[0] = "";
+    xAndYData[1] = "";
+
+    BufferedReader bufferedReader = null;
+    try {
+      int counter = 0;
+      String line = null;
+      bufferedReader = new BufferedReader(new FileReader(csvFile));
+      while ((line = bufferedReader.readLine()) != null) {
+        xAndYData[0] += line.split(",")[0] + ",";
+        xAndYData[1] += line.split(",")[1] + ",";
+      }
+
+    } catch (Exception e) {
+      System.out.println("Exception while reading csv file: " + e);
+    } finally {
+      if (bufferedReader != null) {
+        try {
+          bufferedReader.close();
+        } catch (IOException e) {
+          e.printStackTrace();
+        }
+      }
+    }
+    return xAndYData;
+  }
+
   private static List<Number> getAxisData(String stringData) {
 
     List<Number> axisData = new ArrayList<Number>();
     String[] stringDataArray = stringData.split(",");
     for (int i = 0; i < stringDataArray.length; i++) {
       String dataPoint = stringDataArray[i];
+      System.out.println(dataPoint);
       BigDecimal value = new BigDecimal(dataPoint);
       axisData.add(value);
     }