hgg-svg-0.1.0.0: src/Graphics/Hgg/Quick.hs
-- |
-- Module : Graphics.Hgg.Quick
-- Description : Easy 層の IO ワンショット保存 (= 1 行で SVG 出力、 Phase 11 A3)
-- Copyright : (c) 2026 Aelysce Project (Toshiaki Honda)
-- License : BSD-3-Clause
--
-- core は backend 非依存 (architecture §3.3) のため IO 保存ヘルパは backend 側
-- (本 module) に置く。 値を渡すだけで SVG が 1 ファイル出る入門用 API。
--
-- @
-- import Graphics.Hgg.Quick
--
-- main :: IO ()
-- main = do
-- quickScatter "scatter.svg" [1,2,3,4] [1,4,9,16]
-- quickPlot "overlay.svg" [ points [1,2,3] [1,4,9]
-- , lineXY [1,2,3] [1,4,9] ]
-- @
--
-- `Graphics.Hgg.Easy` を再 export するので、 本 module 1 つの import で
-- `points` / `lineXY` / `overlay` 等の Easy ヘルパも揃う。
{-# LANGUAGE OverloadedStrings #-}
module Graphics.Hgg.Quick
( -- * Easy 層 (再 export)
module Graphics.Hgg.Easy
-- * IO ワンショット保存 (= 値直接受け)
, quickScatter
, quickLine
, quickBar
, quickHist
-- * layer 群をまとめて保存
, quickPlot
) where
import Graphics.Hgg.Backend.SVG (saveSVG)
import Graphics.Hgg.Easy
-- | 散布図を 1 行で SVG 保存。 @quickScatter path xs ys@。
quickScatter :: FilePath -> [Double] -> [Double] -> IO ()
quickScatter path xs ys = quickPlot path [points xs ys]
-- | 折れ線を 1 行で SVG 保存。
quickLine :: FilePath -> [Double] -> [Double] -> IO ()
quickLine path xs ys = quickPlot path [lineXY xs ys]
-- | 棒グラフを 1 行で SVG 保存。
quickBar :: FilePath -> [Double] -> [Double] -> IO ()
quickBar path xs ys = quickPlot path [bars xs ys]
-- | ヒストグラムを 1 行で SVG 保存。
quickHist :: FilePath -> [Double] -> IO ()
quickHist path xs = quickPlot path [hist xs]
-- | layer 群を 'overlay' で重畳して SVG 保存 (= 最も汎用な Easy 保存)。
quickPlot :: FilePath -> [Layer] -> IO ()
quickPlot path = saveSVG path . overlay