d3js

Declarative visualization on a web browser with DSL approach.

https://github.com/nebuta/d3js-haskell

Latest on Hackage:0.1.0.0

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed by Nebuta
Maintained by [email protected]

A library for visualization on a web browser. This works as a DSL that generates JavaScript source code working with D3.js (http:/d3js.org) library.

You can compose operations with a typed DSL with Haskell's abstraction power.

This is still an alpha version, and the structure may be changed in the near future.

  • A simplest example: drawing a bar chart

import Control.Monad
import qualified Data.Text as T
import D3JS

test :: Int -> IO ()
test n = T.writeFile "generated.js" $ reify (box "#div1" (300,300) >>= bars n 300 (Data1D [100,20,80,60,120]))

You can just put the JavaScript file in an HTML file like the following to show a chart.

<html>
<head>
  <title>Chart</title>
</head>
<body>
  <div id='div1'></div>
  <script charset='utf-8' src='http://d3js.org/d3.v3.min.js'></script>
  <script charset='utf-8' src='generated.js'></script>
</body>
</html>

See D3JS.Example for more examples.