gnuplot-0.3.2: src/Graphics/Gnuplot/Private/Graph2D.hs
module Graphics.Gnuplot.Private.Graph2D where
import qualified Graphics.Gnuplot.Private.LineSpecification as LineSpec
import qualified Graphics.Gnuplot.Private.GraphType as GraphType
import qualified Graphics.Gnuplot.Private.Graph as Graph
import Prelude hiding (lines, )
data T =
Cons {
column_ :: Column,
type_ :: Type,
lineSpec_ :: LineSpec.T
}
data Column =
Dim1 {columnX :: Int}
| Dim2 {columnX, columnY :: Int}
type Type = GraphType.T
columnToString :: Column -> String
columnToString c =
case c of
Dim1 x -> show x
Dim2 x y -> show x ++ ":" ++ show y
toString :: T -> String
toString (Cons c t l) =
"using " ++ columnToString c ++
" with " ++ GraphType.toString t ++
" " ++ LineSpec.toString l
instance Graph.C T where
command _ = "plot"
toString = toString
defaultType :: Type
defaultType = GraphType.lines
deflt :: Column -> T
deflt c = Cons c defaultType LineSpec.deflt
typ :: Type -> T -> T
typ t gr = gr{type_ = t}
lineSpec :: LineSpec.T -> T -> T
lineSpec ls gr = gr{lineSpec_ = ls}