diff --git a/ess/TraceWin.py b/ess/TraceWin.py
index 9e14096d41ddfc3a7c17bfd11bdbc5fcb77f241a..c195492f4b48b31be444a0b142a58b2f24b4ff9d 100644
--- a/ess/TraceWin.py
+++ b/ess/TraceWin.py
@@ -149,7 +149,7 @@ class dst:
         print >>fout, out
         fout.close()
 
-    def subplot(self, index, x, y, nb=100, mask=None):
+    def subplot(self, index, x, y=None, nb=100, mask=None):
         '''
         Create a subplot histogram similar to TraceWin.
 
@@ -175,11 +175,13 @@ class dst:
                 'E': 'MeV', 'phi': 'deg'
               }
         # get X and Y data
-        dx=self[x]
-        dy=self[y]
+        dx=np.array(self[x])
         if mask!=None:
             dx=dx[mask]
-            dy=dy[mask]
+        if y!=None:
+            dy=np.array(self[y])
+            if mask!=None:
+                dy=dy[mask]
 
         if x in ['x','y','xp','yp']:
             dx*=1e3
@@ -191,16 +193,28 @@ class dst:
         if y in ['phi']:
             dy-=np.average(dy)
             dy*=180/np.pi
+        if x in ['E'] and max(dx)<0.1:
+            dx*=1e3
+            units['E']='keV'
+        if y in ['E'] and max(dy)<0.1:
+            dy*=1e3
+            units['E']='keV'
+    
 
         plt.subplot(index)
-        plt.hist2d(dx, dy, bins=nb, norm=LogNorm())
-        plt.title('{} [{}] - {} [{}]'.format(x,units[x],y,units[y]))
-        hist,bin_edges=np.histogram(dx,bins=nb)
-        b=bin_edges[:-1]+0.5*(bin_edges[1]-bin_edges[0])
-        plt.plot(b,hist*0.2*(max(dy)-min(dy))/max(hist)+min(dy),'k',lw=1.5,drawstyle='steps')
-        hist,bin_edges=np.histogram(dy,bins=nb)
-        b=bin_edges[:-1]+0.0*(bin_edges[1]-bin_edges[0])
-        plt.plot(hist*0.2*(max(dx)-min(dx))/max(hist)+min(dx),b,'k',lw=1.5,drawstyle='steps')
+        if y!=None:
+            plt.hist2d(dx, dy, bins=nb, norm=LogNorm())
+            plt.title('{} [{}] - {} [{}]'.format(x,units[x],y,units[y]))
+            hist,bin_edges=np.histogram(dx,bins=nb)
+            b=bin_edges[:-1]+0.5*(bin_edges[1]-bin_edges[0])
+            plt.plot(b,hist*0.2*(max(dy)-min(dy))/max(hist)+min(dy),'k',lw=1.5,drawstyle='steps')
+            hist,bin_edges=np.histogram(dy,bins=nb)
+            b=bin_edges[:-1]+0.0*(bin_edges[1]-bin_edges[0])
+            plt.plot(hist*0.2*(max(dx)-min(dx))/max(hist)+min(dx),b,'k',lw=1.5,drawstyle='steps')
+        else:
+            # plot a simple 1D histogram..
+            plt.hist(dx, bins=nb)
+            plt.title('{} [{}]'.format(x,units[x]))
 
 class plt:
     '''