diff --git a/Tools/TimePlot.hs b/Tools/TimePlot.hs
--- a/Tools/TimePlot.hs
+++ b/Tools/TimePlot.hs
@@ -73,7 +73,7 @@
       let plots = I.runStreamSummary (I.byKey initPlot) eventsToTracks
       
       -- Render
-      return $ renderLayout1sStacked $ map (dataToPlot commonTimeAxis) (M.elems plots)
+      return $ renderLayout1sStacked $ map (dataToPlot commonTimeAxis (minOutTime,maxOutTime)) (M.elems plots)
 
 showHelp = mapM_ putStrLn [ "",
   "tplot - a tool for drawing timing diagrams.",
diff --git a/Tools/TimePlot/Render.hs b/Tools/TimePlot/Render.hs
--- a/Tools/TimePlot/Render.hs
+++ b/Tools/TimePlot/Render.hs
@@ -22,21 +22,21 @@
     (map (map (\(x,lab) -> (f' x, lab))) labels) 
     (map f' grid)
 
-dataToPlot :: AxisData LocalTime -> PlotData -> AnyLayout1 LocalTime
-dataToPlot commonTimeAxis p@PlotBarsData{} = withAnyOrdinate $ layoutWithTitle commonTimeAxis [plotBars plot] (plotName p) (length (barsTitles p) > 1)
+dataToPlot :: AxisData LocalTime -> (LocalTime,LocalTime) -> PlotData -> AnyLayout1 LocalTime
+dataToPlot commonTimeAxis tr p@PlotBarsData{} = withAnyOrdinate $ layoutWithTitle commonTimeAxis tr [plotBars plot] (plotName p) (length (barsTitles p) > 1)
   where plot = plot_bars_values      ^= barsValues p $
                plot_bars_item_styles ^= barsStyles p $
                plot_bars_style       ^= barsStyle p $
                plot_bars_titles      ^= barsTitles p $
                ourPlotBars
-dataToPlot commonTimeAxis p@PlotEventData{} = withAnyOrdinate $ layoutWithTitle commonTimeAxis [toPlot plot] (plotName p) False
+dataToPlot commonTimeAxis tr p@PlotEventData{} = withAnyOrdinate $ layoutWithTitle commonTimeAxis tr [toPlot plot] (plotName p) False
   where plot = plot_event_data           ^= eventData p $
                plot_event_long_fillstyle ^= toFillStyle $
                plot_event_label          ^= toLabel     $
                defaultPlotEvent
         toFillStyle s = solidFillStyle . opaque $ fromMaybe lightgray (readColourName (statusColor s))
         toLabel     s = statusLabel s 
-dataToPlot commonTimeAxis p@PlotLinesData{} = withAnyOrdinate $ layoutWithTitle commonTimeAxis (map toPlot plots) (plotName p) (length (linesData p) > 1)
+dataToPlot commonTimeAxis tr p@PlotLinesData{} = withAnyOrdinate $ layoutWithTitle commonTimeAxis tr (map toPlot plots) (plotName p) (length (linesData p) > 1)
   where plots = [plot_lines_values ^= [vs] $ 
                  plot_lines_title  ^= title $ 
                  plot_lines_style  ^= lineStyle $ 
@@ -44,7 +44,7 @@
                  | vs <- linesData p
                  | title <- linesTitles p
                  | lineStyle <- linesStyles p]
-dataToPlot commonTimeAxis p@PlotDotsData{} = withAnyOrdinate $ layoutWithTitle commonTimeAxis (map toPlot plots) (plotName p) (length (dotsData p) > 1)
+dataToPlot commonTimeAxis tr p@PlotDotsData{} = withAnyOrdinate $ layoutWithTitle commonTimeAxis tr (map toPlot plots) (plotName p) (length (dotsData p) > 1)
   where plots = [plot_points_values ^= vs $
                  plot_points_style  ^= hollowCircles 4 1 color $
                  plot_points_title  ^= subtrack $
@@ -53,17 +53,21 @@
                  | color <- dotsColors p
                  | vs <- dotsData p]
 
-layoutWithTitle :: (PlotValue a) => AxisData LocalTime -> [Plot LocalTime a] -> String -> Bool -> Layout1 LocalTime a
-layoutWithTitle commonTimeAxis plots name showLegend =
+-- TODO generate left axis from data fitting into t0..t1
+layoutWithTitle :: (PlotValue a) => AxisData LocalTime -> (LocalTime, LocalTime) -> [Plot LocalTime a] -> String -> Bool -> Layout1 LocalTime a
+layoutWithTitle commonTimeAxis (t0,t1) plots name showLegend =
     layout1_title ^= "" $
     layout1_plots ^= map Left plots $
     (if showLegend then id else (layout1_legend ^= Nothing)) $
     layout1_bottom_axis .> laxis_generate ^= (\_ -> commonTimeAxis) $
     layout1_top_axis    .> laxis_generate ^= (\_ -> commonTimeAxis) $
     layout1_left_axis   .> laxis_title ^= name $
+    layout1_left_axis   .> laxis_generate ^= (\_ -> autoAxis visibleValues) $
     layout1_margin ^= 0 $
     layout1_grid_last ^= True $
     defaultLayout1
+  where
+    visibleValues = [a | p <- plots, (t,a) <- uncurry zip $ plot_all_points_ p, t >= t0 && t <= t1]
 
 ourPlotBars :: (BarsPlotValue a) => PlotBars LocalTime a
 ourPlotBars = plot_bars_spacing ^= BarsFixGap 0 0 $
diff --git a/timeplot.cabal b/timeplot.cabal
--- a/timeplot.cabal
+++ b/timeplot.cabal
@@ -1,5 +1,5 @@
 name: timeplot
-version: 1.0.15
+version: 1.0.16
 cabal-version: >=1.6
 build-type: Simple
 license: BSD3
