diff --git a/src/main/java/com/xeiam/xchart/swing/SwingWrapper.java b/src/main/java/com/xeiam/xchart/swing/SwingWrapper.java
index 37d374fed62f3a9d73433f51fc4fe99cc37efa73..f571d3dd60c66434319e3a9bbdf16710f5aac23b 100644
--- a/src/main/java/com/xeiam/xchart/swing/SwingWrapper.java
+++ b/src/main/java/com/xeiam/xchart/swing/SwingWrapper.java
@@ -51,6 +51,8 @@ public class SwingWrapper {
    * Deprecated Constructor - use the one that takes a Collection! This will be removed in next version.
    * 
    * @param charts
+   * @param numRows
+   * @param numColumns
    */
   @Deprecated
   public SwingWrapper(Chart[] charts, int numRows, int numColumns) {
@@ -62,10 +64,27 @@ public class SwingWrapper {
     this.numColumns = numColumns;
   }
 
+  /**
+   * Constructor - The number of rows and columns will be calculated automatically
+   * 
+   * @param charts
+   * @param numRows
+   * @param numColumns
+   */
+  public SwingWrapper(List<Chart> charts) {
+
+    this.charts = charts;
+
+    this.numRows = (int) (Math.sqrt(charts.size()) + .5);
+    this.numColumns = (int) ((double) charts.size() / this.numRows + 1);
+  }
+
   /**
    * Constructor
    * 
    * @param charts
+   * @param numRows - the number of rows
+   * @param numColumns - the number of columns
    */
   public SwingWrapper(List<Chart> charts, int numRows, int numColumns) {
 
diff --git a/src/test/java/com/xeiam/xchart/example/Example4.java b/src/test/java/com/xeiam/xchart/example/Example4.java
index 1978556ae0b964585f0eb32d4a9e1a8f7f015163..61ea43f555fd3eea24bdd22a26c350ae9cc9f88b 100644
--- a/src/test/java/com/xeiam/xchart/example/Example4.java
+++ b/src/test/java/com/xeiam/xchart/example/Example4.java
@@ -31,17 +31,14 @@ public class Example4 {
 
   public static void main(String[] args) {
 
-    int numRows = 2;
-    int numCols = 2;
+    int numCharts = 4;
 
     List<Chart> charts = new ArrayList<Chart>();
 
-    for (int i = 0; i < numRows; i++) {
-      for (int j = 0; j < numCols; j++) {
-        charts.add(QuickChart.getChart(i + "," + j, "X", "Y", null, null, getRandomWalk(1000)));
-      }
+    for (int i = 0; i < numCharts; i++) {
+      charts.add(QuickChart.getChart("" + i, "X", "Y", null, null, getRandomWalk(1000)));
     }
-    new SwingWrapper(charts, numRows, numCols).displayChartMatrix();
+    new SwingWrapper(charts).displayChartMatrix();
   }
 
   /**