packages feed

plot 0.1.3.0 → 0.1.3.1

raw patch · 4 files changed

+38/−33 lines, 4 files

Files

CHANGES view
@@ -47,3 +47,6 @@  0.1.3.0: 		* change scaling so that miniscule linewidths don't occur++0.1.3.1:+		* fix error in scaling
lib/Graphics/Rendering/Plot/Render/Plot/Annotation.hs view
@@ -52,8 +52,8 @@   -- transform to data coordinates   cairo $ do      C.translate x (y+h)-    C.scale xscale yscalel-    C.translate (-xmin) yminl+    --C.scale xscale yscalel+    C.translate (-xmin*xscale) (yminl*yscalel)     flipVertical   put (BoundingBox (-xmin) (yminl) (xmax-xmin) (ymaxl-yminl))   mapM_ (renderAnnotation xscale yscalel) an@@ -65,8 +65,8 @@ renderAnnotation :: Double -> Double -> Annotation -> Render () renderAnnotation xscale yscale (AnnArrow h lt (x1',y1') (x2',y2')) = do   formatLineSeries lt-  let (x1,y1) = (x1'/xscale,y1'/yscale)-  let (x2,y2) = (x2'/xscale,y2'/yscale)+  let (x1,y1) = (x1'*xscale,y1'*yscale)+  let (x2,y2) = (x2'*xscale,y2'*yscale)   cairo $ do     C.moveTo x1 y1     C.lineTo x2 y2@@ -90,8 +90,8 @@     C.stroke renderAnnotation xscale yscale (AnnOval f b (x1',y1') (x2',y2')) = do   (_,bc,c) <- formatBarSeries b-  let (x1,y1) = (x1'/xscale,y1'/yscale)-  let (x2,y2) = (x2'/xscale,y2'/yscale)+  let (x1,y1) = (x1'*xscale,y1'*yscale)+  let (x2,y2) = (x2'*xscale,y2'*yscale)   let width = x2 - x1       height = y2 - y1       x = x1 + width/2@@ -110,8 +110,8 @@     C.newPath renderAnnotation xscale yscale (AnnRect f b (x1',y1') (x2',y2')) = do   (_,bc,c) <- formatBarSeries b-  let (x1,y1) = (x1'/xscale,y1'/yscale)-  let (x2,y2) = (x2'/xscale,y2'/yscale)+  let (x1,y1) = (x1'*xscale,y1'*yscale)+  let (x2,y2) = (x2'*xscale,y2'*yscale)   cairo $ do     C.save     setColour c@@ -124,17 +124,19 @@     C.newPath renderAnnotation xscale yscale (AnnGlyph pt (x1',y1')) = do   (pw,g) <- formatPointSeries pt-  let (x1,y1) = (x1'/xscale,y1'/yscale)+  let (x1,y1) = (x1'*xscale,y1'*yscale)   cairo $ do     C.moveTo x1 y1     renderGlyph pw g renderAnnotation xscale yscale (AnnText te (x1',y1')) = do --  (x,y) <- cairo $ C.userToDevice x1 y1-  let (x1,y1) = (x1'/xscale,y1'/yscale)+  let (x1,y1) = (x1'*xscale,y1'*yscale)   cairo $ do     C.save     --C.scale (recip xscale) (recip (-yscale))-  _ <- renderText te TRight TTop (x1*xscale) (y1*yscale)+    flipVertical+--  _ <- renderText te TRight TTop (x1') (y1')+  _ <- renderText te TRight TTop (x1) (y1)   cairo $ C.restore   return () renderAnnotation _   _   (AnnCairo r) = do
lib/Graphics/Rendering/Plot/Render/Plot/Data.hs view
@@ -141,7 +141,7 @@   cairo $ do      C.translate x (y+h)     --C.scale xscale yscalel-    C.translate (-xmin) yminl+    C.translate (-xmin*xscale) (yminl*yscalel)     flipVertical   mapM_ (renderSeries xsc yscl xmin xmax xscale yscalel) los   cairo $ C.restore@@ -155,7 +155,7 @@              cairo $ do                 C.translate x (y+h)                --C.scale xscale yscaleu-               C.translate xmin yminu+               C.translate (-xmin*xscale) (yminu*yscaleu)                flipVertical              mapM_ (renderSeries xsc yscu xmin xmax xscale yscaleu) ups              cairo $ C.restore)@@ -285,7 +285,7 @@                                       diff = if mono then diff' else 1                                   cairo $ do                                          case s of-                                                Nothing -> C.moveTo ((t @> xmin_ix)/xscale) ((y @> xmin_ix)/yscale)+                                                Nothing -> C.moveTo ((t @> xmin_ix)*xscale) ((y @> xmin_ix)*yscale)                                                 Just s' -> s'                                          _ <- runMaybeT $ do                                                mapVectorWithIndexM_ (\i y' -> do@@ -314,7 +314,7 @@                                       diff = if mono then diff' else 1                                   cairo $ do                                          case s of-                                                Nothing -> C.moveTo ((t @> xmin_ix)/xscale) (((fst $ y) @> xmin_ix)/yscale)+                                                Nothing -> C.moveTo ((t @> xmin_ix)*xscale) (((fst $ y) @> xmin_ix)*yscale)                                                 Just s' -> s'                                          _ <- runMaybeT $ mapVectorWithIndexM_ (\i t' -> do                                             when (i >= xmin_ix && i `mod` diff == 0)@@ -349,14 +349,14 @@ -----------------------------------------------------------------------------  renderLineSample :: Double → Double -> Double -> Double -> C.Render ()-renderLineSample xscale yscale x y = C.lineTo (x/xscale) (y/yscale)+renderLineSample xscale yscale x y = C.lineTo (x*xscale) (y*yscale)  endLineSample :: Double -> Double -> C.Render () endLineSample _ _ = C.stroke  renderPointSample :: LineWidth -> Glyph -> Double -> Double -> Double -> Double -> C.Render () renderPointSample pz g xscale yscale x y = do-  C.moveTo (x/xscale) (y/yscale)+  C.moveTo (x*xscale) (y*yscale)   renderGlyph pz g  endPointSample :: Double -> Double -> C.Render ()@@ -364,9 +364,9 @@  renderImpulseSample :: Double -> Double -> Double -> Double -> C.Render () renderImpulseSample xscale yscale x y = do-  let x' = x/xscale+  let x' = x*xscale   C.moveTo x' 0-  C.lineTo x (y/yscale)+  C.lineTo x (y*yscale)   C.stroke  endImpulseSample :: Double -> Double -> C.Render ()@@ -375,20 +375,20 @@ renderStepSample :: Double -> Double -> Double -> Double -> C.Render () renderStepSample xscale yscale x y = do   (x',_) <- C.getCurrentPoint-  let y' = y/yscale+  let y' = y*yscale   C.lineTo x'         y'-  C.lineTo (x/xscale) y'+  C.lineTo (x*xscale) y'  endStepSample :: Double -> Double -> C.Render () endStepSample _ _ = C.stroke  renderAreaSample :: Double -> Double -> Double -> Double -> C.Render ()-renderAreaSample xscale yscale x y = C.lineTo (x/xscale) (y/yscale)+renderAreaSample xscale yscale x y = C.lineTo (x*xscale) (y*yscale)  endAreaSample :: Double -> Double -> Double -> Double -> C.Render () endAreaSample x0 _ xscale _ = do   (x',_) <- C.getCurrentPoint-  let x0' = x0/xscale+  let x0' = x0*xscale   C.lineTo x'  0   C.lineTo x0' 0   -- C.lineTo x0 y0@@ -399,8 +399,8 @@ renderBarSample :: Width -> Color -> Color -> Double -> Double -> Double -> Double -> C.Render () renderBarSample bw c bc xscale yscale x y = do   setColour bc-  let bw' = bw/xscale-  C.rectangle ((x/xscale)-bw'/2) 0 bw' (y/yscale)+  let bw' = bw*xscale+  C.rectangle ((x*xscale)-bw'/2) 0 bw' (y*yscale)   C.strokePreserve   setColour c   C.fill@@ -411,10 +411,10 @@ renderHistSample :: Width -> Color -> Color -> Double -> Double -> Double -> Double -> C.Render () renderHistSample _ c bc xscale yscale x y = do   (x',_) <- C.getCurrentPoint-  let x'' = x/xscale+  let x'' = x*xscale   C.stroke   setColour bc-  C.rectangle x' 0 (x''-x') (y/yscale)+  C.rectangle x' 0 (x''-x') (y*yscale)   C.strokePreserve   setColour c   C.fill@@ -426,9 +426,9 @@ renderCandleSample :: Width -> Color -> Color -> Double -> Double -> Double -> (Double,Double) -> C.Render () renderCandleSample bw c bc xscale yscale x (yl,yu) = do   setColour bc-  let (yl',yu') = (yl/yscale,yu/yscale)-      bw' = bw/xscale-  C.rectangle ((x/xscale)-bw'/2) yl' bw' (yu'-yl')+  let (yl',yu') = (yl*yscale,yu*yscale)+      bw' = bw*xscale+  C.rectangle ((x*xscale)-bw'/2) yl' bw' (yu'-yl')   C.strokePreserve   --liftIO $ putStrLn $ (show yl') ++ " " ++ (show yu')   if (yl < yu)@@ -444,8 +444,8 @@ renderWhiskerSample :: Width -> Color -> Color → Bool -> Double -> Double -> Double -> (Double,Double) -> C.Render () renderWhiskerSample bw _ bc whiskers x xscale yscale (yl,yu) = do   setColour bc-  let (x',yl',yu') = (x/xscale,yl/yscale,yu/yscale)-      bw' = bw/xscale+  let (x',yl',yu') = (x*xscale,yl*yscale,yu*yscale)+      bw' = bw*xscale   C.moveTo x' yl'   C.lineTo x' yu'   if whiskers
plot.cabal view
@@ -1,5 +1,5 @@ Name:                plot-Version:             0.1.3.0+Version:             0.1.3.1 License:             BSD3 License-file:        LICENSE Copyright:           (c) A.V.H. McPhail 2010