gnuplot-0.4: src/Graphics/Gnuplot/Private/Frame.hs
module Graphics.Gnuplot.Private.Frame where
import qualified Graphics.Gnuplot.Private.Plot as Plot
import qualified Graphics.Gnuplot.Private.FrameOptionSet as OptionSet
import qualified Graphics.Gnuplot.Display as Display
import qualified Graphics.Gnuplot.Private.Graph as Graph
import qualified Data.Monoid.State as State
import Data.Monoid (Monoid, mappend, )
data T graph =
Cons {
option :: OptionSet.T graph,
plot :: Plot.T graph
}
instance Graph.C graph => Display.C (T graph) where
toScript frame =
(Display.Script $
State.Cons $ \(n, opts0) ->
let opts1 = OptionSet.decons $ option frame
in (Display.Body [] $
OptionSet.diffToString opts0 opts1,
(n, opts1)))
`mappend`
(Plot.toScript $ plot frame)