├── .gitignore
├── Makefile
├── README.md
├── doc
├── assets
│ ├── radian-icon.ico
│ ├── radian-logo-small.png
│ ├── radian-logo.png
│ └── radian-logo.svg
├── build
│ ├── LICENSE
│ ├── Setup.hs
│ ├── radian-docs.cabal
│ └── radian-docs.hs
├── changelog.markdown
├── community.markdown
├── contact.markdown
├── css
│ ├── bootstrap-responsive.css
│ ├── bootstrap.css
│ ├── gallery.css
│ ├── hljs.css
│ ├── radian.css
│ ├── style.css
│ └── syntax.css
├── data
│ ├── histo.csv
│ ├── iris.csv
│ ├── nations.json
│ ├── stocks
│ │ ├── CSCO.csv
│ │ ├── DELL.csv
│ │ ├── FB.csv
│ │ ├── GOOG.csv
│ │ ├── MSFT.csv
│ │ └── YHOO.csv
│ ├── tutorial-2
│ │ ├── d1.csv
│ │ ├── d10.csv
│ │ ├── d3.json
│ │ ├── d4.json
│ │ ├── d5.csv
│ │ ├── d8.csv
│ │ └── d9.csv
│ ├── tutorial-3
│ │ ├── CSCO.csv
│ │ ├── DELL.csv
│ │ ├── FB.csv
│ │ ├── GOOG.csv
│ │ ├── MSFT.csv
│ │ └── YHOO.csv
│ ├── vic2012.csv
│ ├── vic2012.json
│ └── vic2012d.csv
├── documentation.markdown
├── download.markdown
├── downloads
│ ├── radian-0.1.1.tar.gz
│ ├── radian-0.1.1.zip
│ ├── radian-0.1.2.tar.gz
│ ├── radian-0.1.2.zip
│ ├── radian-0.1.3.tar.gz
│ ├── radian-0.1.3.zip
│ ├── radian-0.1.tar.gz
│ └── radian-0.1.zip
├── faq.markdown
├── favicon.ico
├── font
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ └── fontawesome-webfont.woff
├── gallery
│ ├── eg
│ │ ├── 01.html
│ │ ├── 02.html
│ │ ├── 03.html
│ │ ├── 04.html
│ │ ├── 05.html
│ │ ├── 06.html
│ │ ├── 07.html
│ │ ├── 08.html
│ │ ├── 09.html
│ │ ├── 11.html
│ │ ├── 12.html
│ │ ├── 13.html
│ │ ├── 14.html
│ │ ├── 15.html
│ │ ├── 17.html
│ │ ├── 18.html
│ │ ├── 19.html
│ │ ├── 21.html
│ │ ├── 25.html
│ │ ├── 26.html
│ │ ├── 27.html
│ │ ├── 28.html
│ │ ├── 31.html
│ │ ├── 32.html
│ │ ├── 33.html
│ │ ├── 34.html
│ │ ├── 35.html
│ │ ├── 38.html
│ │ ├── 39.html
│ │ ├── 41.html
│ │ ├── 42.html
│ │ ├── 43.html
│ │ ├── 46.html
│ │ ├── 47.html
│ │ ├── 49.html
│ │ ├── 50.html
│ │ ├── 52.html
│ │ ├── 53.html
│ │ ├── 54.html
│ │ ├── 67.html
│ │ ├── 68.html
│ │ ├── 69.html
│ │ └── 74.html
│ └── index.markdown
├── img
│ ├── bayeshive-logo.svg
│ └── radian-logo-small.png
├── index.markdown
├── js
│ ├── angular.min.js
│ ├── app.js
│ ├── bootstrap.min.js
│ ├── d3.v2.js
│ ├── escodegen.browser.js
│ ├── estraverse.js
│ ├── hljs.js
│ ├── html5slider.js
│ ├── jquery.csv.js
│ ├── jquery.js
│ └── radian.min.js
├── license.markdown
├── news.markdown
├── radian-docs
├── ref-manual
│ ├── 01-data-sets.markdown
│ ├── 02-data-accessor-syntax.markdown
│ ├── 03-categorical-data.markdown
│ ├── 04-plot-directive.markdown
│ ├── 05-plot-types.markdown
│ ├── 06-palettes-and-interpolators.markdown
│ ├── 07-legends.markdown
│ ├── 08-user-interface-features.markdown
│ ├── 09-plot-layout-directives.markdown
│ ├── 10-radian-plotting-library.markdown
│ ├── A-reserved-names.markdown
│ └── index.markdown
├── roadmap.markdown
├── templates
│ ├── default.html
│ └── post.html
├── tmp
│ ├── about.rst
│ ├── contact.markdown
│ ├── css
│ │ └── default.css
│ ├── images
│ │ └── haskell-logo.png
│ ├── index.html
│ ├── posts
│ │ ├── 2012-08-12-spqr.markdown
│ │ ├── 2012-10-07-rosa-rosa-rosam.markdown
│ │ ├── 2012-11-28-carpe-diem.markdown
│ │ └── 2012-12-07-tu-quoque.markdown
│ ├── site.hs
│ └── templates
│ │ ├── archive.html
│ │ ├── default.html
│ │ ├── post-list.html
│ │ └── post.html
└── tutorial
│ ├── 1-function-plots
│ ├── 1-1-plot-setup.markdown
│ ├── 1-2-line-plots.markdown
│ ├── 1-3-radian-expressions.markdown
│ ├── 1-4-basic-interaction.markdown
│ ├── 1-5-putting-it-together.markdown
│ └── index.markdown
│ ├── 2-data-plots
│ ├── 2-1-accessing-plot-data.markdown
│ ├── 2-2-scatter-plots.markdown
│ ├── 2-3-bar-charts.markdown
│ ├── 2-4-plot-layout.markdown
│ ├── 2-5-putting-it-together.markdown
│ └── index.markdown
│ ├── 3-interactive-plots
│ ├── 3-1-data-binding.markdown
│ ├── 3-2-building-the-example.markdown
│ └── index.markdown
│ └── index.markdown
├── examples
├── css
│ ├── .gitignore
│ ├── app.css
│ ├── bootstrap.css
│ ├── hljs.css
│ └── radian.css
├── data
│ ├── mockJSON.json
│ ├── nations.json
│ ├── stocks
│ │ ├── CSCO.csv
│ │ ├── DELL.csv
│ │ ├── FB.csv
│ │ ├── GOOG.csv
│ │ ├── MSFT.csv
│ │ └── YHOO.csv
│ ├── vic2012.csv
│ └── vic2012.json
├── eg
│ ├── .gitignore
│ ├── 01.html
│ ├── 02.html
│ ├── 03.html
│ ├── 04.html
│ ├── 05.html
│ ├── 06.html
│ ├── 07.html
│ ├── 08.html
│ ├── 09.html
│ ├── 10.html
│ ├── 11.html
│ ├── 12.html
│ ├── 13.html
│ ├── 14.html
│ ├── 15.html
│ ├── 16.html
│ ├── 17.html
│ ├── 18.html
│ ├── 19.html
│ ├── 20.html
│ ├── 21.html
│ ├── 22.html
│ ├── 23.html
│ ├── 24.html
│ ├── 25.html
│ ├── 26.html
│ ├── 27.html
│ ├── 28.html
│ ├── 29.html
│ ├── 30.html
│ ├── 31.html
│ ├── 32.html
│ ├── 33.html
│ ├── 34.html
│ ├── 35.html
│ ├── 36.html
│ ├── 37.html
│ ├── 38.html
│ ├── 39.html
│ ├── 40.html
│ ├── 41.html
│ ├── 42.html
│ ├── 43.html
│ ├── 44.html
│ ├── 45.html
│ ├── 46.html
│ ├── 47.html
│ ├── 48.html
│ ├── 49.html
│ ├── 50.html
│ ├── 51.html
│ ├── 52.html
│ ├── 53.html
│ ├── 54.html
│ ├── 55.html
│ ├── 56.html
│ ├── 57.html
│ ├── 58.html
│ ├── 59.html
│ ├── 60.html
│ ├── 61.html
│ ├── 62.html
│ ├── 63.html
│ ├── 64.html
│ ├── 65.html
│ ├── 66.html
│ ├── 67.html
│ ├── 68.html
│ ├── 69.html
│ ├── 70.html
│ ├── 71.html
│ ├── 72.html
│ ├── 73.html
│ ├── 74.html
│ ├── 75.html
│ ├── 76.html
│ ├── 77.html
│ ├── 78.html
│ ├── 79.html
│ ├── 80.html
│ ├── 81.html
│ ├── 82.html
│ ├── 83.html
│ └── 84.html
├── img
│ ├── glyphicons-halflings-white.png
│ └── glyphicons-halflings.png
├── index.html
├── js
│ ├── app.js
│ ├── radian.js
│ └── radian.min.js
├── lib
├── tst.html
└── web-server.js
├── experiments
└── Layout.hs
├── lib
├── angular
│ ├── angular-cookies.js
│ ├── angular-cookies.min.js
│ ├── angular-loader.js
│ ├── angular-loader.min.js
│ ├── angular-resource.js
│ ├── angular-resource.min.js
│ ├── angular-sanitize.js
│ ├── angular-sanitize.min.js
│ ├── angular.js
│ ├── angular.min.js
│ └── version.txt
├── bootstrap.js
├── d3.v2.js
├── escodegen.browser.js
├── hljs.js
├── jquery.csv-0.71.js
├── jquery.csv-0.71.min.js
├── jquery.csv.js
└── jquery.js
├── radian.css
├── radian.js
├── radian.min.css
├── radian.min.js
├── src
├── core.js
├── data.js
├── debug.js
├── end.js
├── expressions.js
├── interpolation.js
├── layout.js
├── legends.js
├── lib.js
├── plots.js
├── radian.css
├── start.js
├── ui.js
└── utils.js
└── tools
└── yuicompressor-2.4.8pre.jar
/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/_cache/*
2 | /doc/_site/*
3 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | # See the README for installation instructions.
2 |
3 | YUICOMPRESSOR = tools/yuicompressor-2.4.8pre.jar
4 | UGLIFYJS = uglifyjs
5 |
6 | all: radian.js radian.min.js radian.css radian.min.css examples
7 |
8 | .INTERMEDIATE radian.js: \
9 | src/start.js \
10 | src/core.js \
11 | src/expressions.js \
12 | src/data.js \
13 | src/layout.js \
14 | src/plots.js \
15 | src/interpolation.js \
16 | src/lib.js \
17 | src/legends.js \
18 | src/ui.js \
19 | src/utils.js \
20 | src/debug.js \
21 | src/end.js
22 |
23 | radian.min.js: radian.js Makefile
24 | @rm -f $@
25 | $(UGLIFYJS) radian.js > $@
26 |
27 | # java -jar $(YUICOMPRESSOR) radian.tmp.js > $@
28 |
29 | radian%js: Makefile
30 | @rm -f $@
31 | cat $(filter %.js,$^) > $@
32 |
33 | #radian%js: Makefile
34 | # @rm -f $@
35 | # @cat $(filter %.js,$^) > $@.tmp
36 | # $(JS_UGLIFY) -b -o $@ $@.tmp
37 | # @rm $@.tmp
38 | # @chmod a-w $@
39 |
40 | radian.css: src/radian.css
41 | @cp src/radian.css radian.css
42 |
43 | radian.min.css: radian.css Makefile
44 | @rm -f $@
45 | java -jar $(YUICOMPRESSOR) radian.css -o $@
46 |
47 | examples: radian.js src/radian.css
48 | @cp radian.js examples/js
49 | @cp radian.min.js examples/js
50 | @cp src/radian.css examples/css
51 |
52 | clean:
53 | rm -f radian*.js
54 |
55 | DISTS=examples lib Makefile radian.css radian.js \
56 | radian.min.js README.md src tools
57 |
58 | dist:
59 | tar czf dist.tar.gz $(addprefix ./,$(DISTS))
60 | zip -r dist.zip $(addprefix ./,$(DISTS))
61 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # AngularJS + D3.js = Radian
2 |
3 | **Radian** is a JavaScript library for producing interactive SVG plots
4 | in HTML using Angular JS and D3.js. Using Angular directives leads to
5 | a clear and declarative API for representing plots that can respond to
6 | UI elements via Angular data binding.
7 |
8 | Documentation is on the
9 | [website](http://openbrainsrc.github.io/Radian/index.html) (some
10 | technical documentation is also on the
11 | [wiki](https://github.com/glutamate/Radian/wiki).)
12 |
13 | ## Installation
14 |
15 | Radian uses a very simple setup for building: there is a single
16 | Makefile in the root directory of the repository which concatenates
17 | all the Radian library source into a single `radian.js`, then minifies
18 | this (using UglifyJS) to make a `radian.min.js`.
19 |
20 | In order to use Radian in an HTML page, you need to include one or the
21 | other of the `radian.js` or `radian.min.js` scripts, along with the
22 | `radian.css` stylesheet and a small number of dependencies, versions
23 | of which are included in the `lib` directory of the repository:
24 |
25 | * `jquery.js`: the main [jQuery](http://www.jquery.com) library
26 | * `jquery.csv.js`: a
27 | [CSV parser library](https://code.google.com/p/jquery-csv/)
28 | * `bootstrap.js`: Javascript for the
29 | [Bootstrap framework](http://getbootstrap.com/2.3.2/index.html)
30 | (used for some UI elements)
31 | * `escodegen.browser.js`: a
32 | [library](https://github.com/Constellation/escodegen) for generating
33 | Javascript code from Mozilla's SpiderMonkey abstract syntax tree
34 | description
35 | * `d3.v2.js`: the [D3.js](http://d3js.org/) plotting library, on
36 | which Radian is based
37 | * `angular.js`: the [AngularJS framework](http://angularjs.org/)
38 |
39 | The versions of these libraries in the `lib` directory are known to
40 | work, but more recent versions may also be fine.
41 |
42 | To get an idea of how to set up a page to use Radian, you can take a
43 | look at the
44 | [index page](https://github.com/openbrainsrc/Radian/blob/master/examples/index.html)
45 | for the Radian examples.
46 |
--------------------------------------------------------------------------------
/doc/assets/radian-icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/assets/radian-icon.ico
--------------------------------------------------------------------------------
/doc/assets/radian-logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/assets/radian-logo-small.png
--------------------------------------------------------------------------------
/doc/assets/radian-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/assets/radian-logo.png
--------------------------------------------------------------------------------
/doc/assets/radian-logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
20 |
43 |
55 |
56 |
58 |
59 |
61 | image/svg+xml
62 |
64 |
65 |
66 |
67 |
68 |
73 |
76 |
88 |
100 |
112 |
113 |
114 |
115 |
--------------------------------------------------------------------------------
/doc/build/Setup.hs:
--------------------------------------------------------------------------------
1 | import Distribution.Simple
2 | main = defaultMain
3 |
--------------------------------------------------------------------------------
/doc/build/radian-docs.cabal:
--------------------------------------------------------------------------------
1 | -- Initial blog.cabal generated by cabal init. For further documentation,
2 | -- see http://haskell.org/cabal/users-guide/
3 |
4 | name: radian-docs
5 | version: 0.1.0.0
6 | synopsis: Radian documentation.
7 | -- description:
8 | homepage: http://openbrainsrc.github.io/Radian/
9 | license: OtherLicense
10 | license-file: LICENSE
11 | author: Ian Ross
12 | maintainer: ian@skybluetrades.net
13 | -- copyright:
14 | -- category:
15 | build-type: Simple
16 | cabal-version: >=1.8
17 |
18 | executable radian-docs
19 | main-is: radian-docs.hs
20 | build-depends: base < 5 && >= 3, hakyll
21 |
--------------------------------------------------------------------------------
/doc/build/radian-docs.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE OverloadedStrings #-}
2 | module Main where
3 |
4 | import Data.Monoid (mappend, (<>))
5 | import Hakyll
6 |
7 |
8 |
9 | -- | Set up deployment command.
10 | --
11 | hakyllConf :: Configuration
12 | hakyllConf = defaultConfiguration {
13 | deployCommand = "cp -r _site/* ../../Radian-pages"
14 | }
15 |
16 |
17 | -- | Top-level pages.
18 | --
19 | pages :: Pattern
20 | pages = fromList ["changelog.markdown", "community.markdown",
21 | "documentation.markdown", "download.markdown",
22 | "faq.markdown", "roadmap.markdown", "index.markdown",
23 | "license.markdown", "contact.markdown"]
24 |
25 |
26 | -- | Directories with more pages.
27 | --
28 | directories :: Pattern
29 | directories = foldl1 (.||.) $ map doone ds
30 | where doone d = fromGlob (d <> "/*.markdown") .||.
31 | fromGlob (d <> "/**/*.markdown")
32 | ds = ["gallery", "posts", "ref-manual", "tutorial"]
33 |
34 |
35 | -- | Main program: adds a "publish" option to copy a draft out to the
36 | -- main posts area.
37 | --
38 | main :: IO ()
39 | main = hakyllWith hakyllConf $ do
40 | match "templates/*" $ compile templateCompiler
41 |
42 | match "css/*" $ do
43 | route idRoute
44 | compile copyFileCompiler
45 |
46 | match "js/*" $ do
47 | route idRoute
48 | compile copyFileCompiler
49 |
50 | match "font/*" $ do
51 | route idRoute
52 | compile copyFileCompiler
53 |
54 | match "downloads/*" $ do
55 | route idRoute
56 | compile copyFileCompiler
57 |
58 | match "gallery/eg/*" $ do
59 | route idRoute
60 | compile copyFileCompiler
61 |
62 | match "favicon.ico" $ do
63 | route idRoute
64 | compile copyFileCompiler
65 |
66 | match pages $ do
67 | route $ setExtension ".html"
68 | compile $ pandocCompiler
69 | >>= loadAndApplyTemplate "templates/default.html" defaultContext
70 | >>= relativizeUrls
71 |
72 | match directories $ do
73 | route $ setExtension ".html"
74 | compile $ pandocCompiler
75 | >>= loadAndApplyTemplate "templates/default.html" defaultContext
76 | >>= relativizeUrls
77 |
78 | match "img/*" $ do
79 | route idRoute
80 | compile copyFileCompiler
81 |
82 | match "data/**" $ do
83 | route idRoute
84 | compile copyFileCompiler
85 |
86 | match "posts/*.markdown" $ do
87 | route $ setExtension ".html"
88 | compile $ pandocCompiler
89 | >>= loadAndApplyTemplate "templates/post.html" postCtx
90 | >>= loadAndApplyTemplate "templates/default.html" postCtx
91 | >>= relativizeUrls
92 |
93 |
94 | -- | Context for posts.
95 | --
96 | postCtx :: Context String
97 | postCtx = dateField "date" "%B %e, %Y" `mappend` defaultContext
98 |
--------------------------------------------------------------------------------
/doc/changelog.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Version history
4 | ---
5 |
6 | ## Version history
7 | {% for post in site.tags.changelog %}
8 | ---
9 |
10 | Version {{ post.title }}
11 |
12 | {{ post.date | date: "%e" }}
13 | {{ post.date | date: "%b" }}
14 | {{ post.date | date: "%Y" }}
15 |
16 |
17 | {{ post.content }}
18 | {% endfor %}
19 |
20 | ---
21 | ### Version 0.0
22 | - Pre-release
23 |
--------------------------------------------------------------------------------
/doc/community.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Community
4 | ---
5 |
6 | ## Community
7 |
8 | If you have questions related to the use of Radian, we have a
9 | [web forum](https://groups.google.com/forum/#!forum/radian-users) on
10 | Google Groups where we aim to respond to user queries as quickly as we
11 | can.
12 |
13 | If you have a bug to report, a feature to request or a patch to
14 | submit, you can submit issues or pull requests to the
15 | [Radian repository](https://github.com/openbrainsrc/Radian).
16 |
17 | Finally, if you want to help with the development of Radian, join us
18 | on GitHub!
19 |
--------------------------------------------------------------------------------
/doc/contact.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Contact
4 | ---
5 |
6 | Radian is a product of OpenBrain and is being developed as part of the
7 | [BayesHive](http://www.bayeshive.com) project.
8 |
9 | **Ian Ross** is the main developer of Radian. You can reach him as
10 | [ian@skybluetrades.net](mailto:ian@skybluetrades.net). He's probably
11 | the person for technical questions about Radian.
12 |
13 | **Tom Nielsen** is the CEO of OpenBrain. You can reach him as
14 | [tomn@openbrain.org](mailto:tomn@openbrain.org). He's the person to
15 | send any commercial questions about Radian and related products.
16 |
--------------------------------------------------------------------------------
/doc/css/gallery.css:
--------------------------------------------------------------------------------
1 | /* app css stylesheet */
2 |
3 | .menu {
4 | list-style: none;
5 | border-bottom: 0.1em solid black;
6 | margin-bottom: 2em;
7 | padding: 0 0 0.5em;
8 | }
9 |
10 | .menu:before {
11 | content: "[";
12 | }
13 |
14 | .menu:after {
15 | content: "]";
16 | }
17 |
18 | .menu > li {
19 | display: inline;
20 | }
21 |
22 | .menu > li:before {
23 | content: "|";
24 | padding-right: 0.3em;
25 | }
26 |
27 | .menu > li:nth-child(1):before {
28 | content: "";
29 | padding: 0;
30 | }
31 |
32 | plot { height: 300px; width: 500px; }
33 |
34 | .navbar-gallery .navbar-inner {
35 | min-height: 30px;
36 | }
37 |
38 | .navbar-gallery .nav>li>a {
39 | padding: 5px;
40 | }
41 |
--------------------------------------------------------------------------------
/doc/css/hljs.css:
--------------------------------------------------------------------------------
1 | pre code{display:block;color:black;background:ghostwhite}pre .comment,pre .template_comment,pre .diff .header,pre .javadoc{color:#998;font-style:italic}pre .keyword,pre .css .rule .keyword,pre .winutils,pre .javascript .title,pre .lisp .title,pre .subst,pre .request,pre .status{color:black;font-weight:bold}pre .number,pre .hexcolor{color:#40a070}pre .string,pre .tag .value,pre .phpdoc,pre .tex .formula{color:#d14}pre .title,pre .id{color:#900;font-weight:bold}pre .javascript .title,pre .lisp .title,pre .subst{font-weight:normal}pre .class .title,pre .haskell .label,pre .vhdl .literal,pre .tex .command{color:#458;font-weight:bold}pre .tag,pre .tag .title,pre .rules .property,pre .django .tag .keyword{color:navy;font-weight:normal}pre .attribute,pre .variable,pre .instancevar,pre .lisp .body{color:teal}pre .regexp{color:#009926}pre .class{color:#458;font-weight:bold}pre .symbol,pre .ruby .symbol .string,pre .ruby .symbol .keyword,pre .ruby .symbol .keymethods,pre .lisp .keyword,pre .tex .special,pre .input_number{color:#990073}pre .builtin,pre .built_in,pre .lisp .title{color:#0086b3}pre .preprocessor,pre .pi,pre .doctype,pre .shebang,pre .cdata{color:#999;font-weight:bold}pre .deletion{background:#fdd}pre .addition{background:#dfd}pre .diff .change{background:#0086b3}pre .chunk{color:#aaa}pre .tex .formula{opacity:.5}
2 |
--------------------------------------------------------------------------------
/doc/css/style.css:
--------------------------------------------------------------------------------
1 | .left50pct {
2 | float: left;
3 | width: 49%;
4 | margin: 0;
5 | }
6 | .right50pct {
7 | float: right;
8 | width: 49%;
9 | margin: 0;
10 | }
11 | .clear50pct { clear: both; }
12 |
13 | .navbar-main .navbar-inner {
14 | background-image: url("../img/radian-logo-small.png");
15 | background-repeat: no-repeat; background-position: 15px 5px;
16 | }
17 | .navbar-main .brand { margin-left: 15px; }
18 |
19 | footer { background-color: #eee; color: #555; margin: 5px 0px; }
20 |
21 | .nyi { color: #888; font-style: italic; }
22 |
23 | .plot-center { width: 100%; }
24 | .plot-center .radian { margin-left: auto; margin-right: auto; }
25 |
26 | .plot-title {
27 | float: right;
28 | margin-right: 10px;
29 | margin-top: 5px;
30 | font-weight: bold;
31 | }
32 |
33 | .exercise {
34 | border: 1px solid #999;
35 | padding: 10px;
36 | padding-bottom: 0;
37 | }
38 |
39 | .plot-hidden { position: absolute; left: -10000px; }
40 |
--------------------------------------------------------------------------------
/doc/css/syntax.css:
--------------------------------------------------------------------------------
1 | /* Generated by pandoc. */
2 | table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode, table.sourceCode pre
3 | { margin: 0; padding: 0; border: 0; vertical-align: baseline; border: none; }
4 | td.lineNumbers { border-right: 1px solid #AAAAAA; text-align: right; color: #AAAAAA; padding-right: 5px; padding-left: 5px; }
5 | td.sourceCode { padding-left: 5px; }
6 | pre.sourceCode { padding-left: 1em; background-color: ghostwhite; }
7 | pre.sourceCode span.kw { color: #007020; font-weight: bold; }
8 | pre.sourceCode span.dt { color: #902000; }
9 | pre.sourceCode span.dv { color: #40a070; }
10 | pre.sourceCode span.bn { color: #40a070; }
11 | pre.sourceCode span.fl { color: #40a070; }
12 | pre.sourceCode span.ch { color: #4070a0; }
13 | pre.sourceCode span.st { color: #4070a0; }
14 | pre.sourceCode span.co { color: #60a0b0; font-style: italic; }
15 | pre.sourceCode span.ot { color: #007020; }
16 | pre.sourceCode span.al { color: red; font-weight: bold; }
17 | pre.sourceCode span.fu { color: #06287e; }
18 | pre.sourceCode span.re { }
19 | pre.sourceCode span.er { color: red; font-weight: bold; }
20 |
--------------------------------------------------------------------------------
/doc/data/iris.csv:
--------------------------------------------------------------------------------
1 | 5.1,3.5,1.4,0.2,"I. setosa"
2 | 4.9,3,1.4,0.2,"I. setosa"
3 | 4.7,3.2,1.3,0.2,"I. setosa"
4 | 4.6,3.1,1.5,0.2,"I. setosa"
5 | 5,3.6,1.4,0.2,"I. setosa"
6 | 5.4,3.9,1.7,0.4,"I. setosa"
7 | 4.6,3.4,1.4,0.3,"I. setosa"
8 | 5,3.4,1.5,0.2,"I. setosa"
9 | 4.4,2.9,1.4,0.2,"I. setosa"
10 | 4.9,3.1,1.5,0.1,"I. setosa"
11 | 5.4,3.7,1.5,0.2,"I. setosa"
12 | 4.8,3.4,1.6,0.2,"I. setosa"
13 | 4.8,3,1.4,0.1,"I. setosa"
14 | 4.3,3,1.1,0.1,"I. setosa"
15 | 5.8,4,1.2,0.2,"I. setosa"
16 | 5.7,4.4,1.5,0.4,"I. setosa"
17 | 5.4,3.9,1.3,0.4,"I. setosa"
18 | 5.1,3.5,1.4,0.3,"I. setosa"
19 | 5.7,3.8,1.7,0.3,"I. setosa"
20 | 5.1,3.8,1.5,0.3,"I. setosa"
21 | 5.4,3.4,1.7,0.2,"I. setosa"
22 | 5.1,3.7,1.5,0.4,"I. setosa"
23 | 4.6,3.6,1,0.2,"I. setosa"
24 | 5.1,3.3,1.7,0.5,"I. setosa"
25 | 4.8,3.4,1.9,0.2,"I. setosa"
26 | 5,3,1.6,0.2,"I. setosa"
27 | 5,3.4,1.6,0.4,"I. setosa"
28 | 5.2,3.5,1.5,0.2,"I. setosa"
29 | 5.2,3.4,1.4,0.2,"I. setosa"
30 | 4.7,3.2,1.6,0.2,"I. setosa"
31 | 4.8,3.1,1.6,0.2,"I. setosa"
32 | 5.4,3.4,1.5,0.4,"I. setosa"
33 | 5.2,4.1,1.5,0.1,"I. setosa"
34 | 5.5,4.2,1.4,0.2,"I. setosa"
35 | 4.9,3.1,1.5,0.2,"I. setosa"
36 | 5,3.2,1.2,0.2,"I. setosa"
37 | 5.5,3.5,1.3,0.2,"I. setosa"
38 | 4.9,3.6,1.4,0.1,"I. setosa"
39 | 4.4,3,1.3,0.2,"I. setosa"
40 | 5.1,3.4,1.5,0.2,"I. setosa"
41 | 5,3.5,1.3,0.3,"I. setosa"
42 | 4.5,2.3,1.3,0.3,"I. setosa"
43 | 4.4,3.2,1.3,0.2,"I. setosa"
44 | 5,3.5,1.6,0.6,"I. setosa"
45 | 5.1,3.8,1.9,0.4,"I. setosa"
46 | 4.8,3,1.4,0.3,"I. setosa"
47 | 5.1,3.8,1.6,0.2,"I. setosa"
48 | 4.6,3.2,1.4,0.2,"I. setosa"
49 | 5.3,3.7,1.5,0.2,"I. setosa"
50 | 5,3.3,1.4,0.2,"I. setosa"
51 | 7,3.2,4.7,1.4,"I. versicolor"
52 | 6.4,3.2,4.5,1.5,"I. versicolor"
53 | 6.9,3.1,4.9,1.5,"I. versicolor"
54 | 5.5,2.3,4,1.3,"I. versicolor"
55 | 6.5,2.8,4.6,1.5,"I. versicolor"
56 | 5.7,2.8,4.5,1.3,"I. versicolor"
57 | 6.3,3.3,4.7,1.6,"I. versicolor"
58 | 4.9,2.4,3.3,1,"I. versicolor"
59 | 6.6,2.9,4.6,1.3,"I. versicolor"
60 | 5.2,2.7,3.9,1.4,"I. versicolor"
61 | 5,2,3.5,1,"I. versicolor"
62 | 5.9,3,4.2,1.5,"I. versicolor"
63 | 6,2.2,4,1,"I. versicolor"
64 | 6.1,2.9,4.7,1.4,"I. versicolor"
65 | 5.6,2.9,3.6,1.3,"I. versicolor"
66 | 6.7,3.1,4.4,1.4,"I. versicolor"
67 | 5.6,3,4.5,1.5,"I. versicolor"
68 | 5.8,2.7,4.1,1,"I. versicolor"
69 | 6.2,2.2,4.5,1.5,"I. versicolor"
70 | 5.6,2.5,3.9,1.1,"I. versicolor"
71 | 5.9,3.2,4.8,1.8,"I. versicolor"
72 | 6.1,2.8,4,1.3,"I. versicolor"
73 | 6.3,2.5,4.9,1.5,"I. versicolor"
74 | 6.1,2.8,4.7,1.2,"I. versicolor"
75 | 6.4,2.9,4.3,1.3,"I. versicolor"
76 | 6.6,3,4.4,1.4,"I. versicolor"
77 | 6.8,2.8,4.8,1.4,"I. versicolor"
78 | 6.7,3,5,1.7,"I. versicolor"
79 | 6,2.9,4.5,1.5,"I. versicolor"
80 | 5.7,2.6,3.5,1,"I. versicolor"
81 | 5.5,2.4,3.8,1.1,"I. versicolor"
82 | 5.5,2.4,3.7,1,"I. versicolor"
83 | 5.8,2.7,3.9,1.2,"I. versicolor"
84 | 6,2.7,5.1,1.6,"I. versicolor"
85 | 5.4,3,4.5,1.5,"I. versicolor"
86 | 6,3.4,4.5,1.6,"I. versicolor"
87 | 6.7,3.1,4.7,1.5,"I. versicolor"
88 | 6.3,2.3,4.4,1.3,"I. versicolor"
89 | 5.6,3,4.1,1.3,"I. versicolor"
90 | 5.5,2.5,4,1.3,"I. versicolor"
91 | 5.5,2.6,4.4,1.2,"I. versicolor"
92 | 6.1,3,4.6,1.4,"I. versicolor"
93 | 5.8,2.6,4,1.2,"I. versicolor"
94 | 5,2.3,3.3,1,"I. versicolor"
95 | 5.6,2.7,4.2,1.3,"I. versicolor"
96 | 5.7,3,4.2,1.2,"I. versicolor"
97 | 5.7,2.9,4.2,1.3,"I. versicolor"
98 | 6.2,2.9,4.3,1.3,"I. versicolor"
99 | 5.1,2.5,3,1.1,"I. versicolor"
100 | 5.7,2.8,4.1,1.3,"I. versicolor"
101 | 6.3,3.3,6,2.5,"I. virginica"
102 | 5.8,2.7,5.1,1.9,"I. virginica"
103 | 7.1,3,5.9,2.1,"I. virginica"
104 | 6.3,2.9,5.6,1.8,"I. virginica"
105 | 6.5,3,5.8,2.2,"I. virginica"
106 | 7.6,3,6.6,2.1,"I. virginica"
107 | 4.9,2.5,4.5,1.7,"I. virginica"
108 | 7.3,2.9,6.3,1.8,"I. virginica"
109 | 6.7,2.5,5.8,1.8,"I. virginica"
110 | 7.2,3.6,6.1,2.5,"I. virginica"
111 | 6.5,3.2,5.1,2,"I. virginica"
112 | 6.4,2.7,5.3,1.9,"I. virginica"
113 | 6.8,3,5.5,2.1,"I. virginica"
114 | 5.7,2.5,5,2,"I. virginica"
115 | 5.8,2.8,5.1,2.4,"I. virginica"
116 | 6.4,3.2,5.3,2.3,"I. virginica"
117 | 6.5,3,5.5,1.8,"I. virginica"
118 | 7.7,3.8,6.7,2.2,"I. virginica"
119 | 7.7,2.6,6.9,2.3,"I. virginica"
120 | 6,2.2,5,1.5,"I. virginica"
121 | 6.9,3.2,5.7,2.3,"I. virginica"
122 | 5.6,2.8,4.9,2,"I. virginica"
123 | 7.7,2.8,6.7,2,"I. virginica"
124 | 6.3,2.7,4.9,1.8,"I. virginica"
125 | 6.7,3.3,5.7,2.1,"I. virginica"
126 | 7.2,3.2,6,1.8,"I. virginica"
127 | 6.2,2.8,4.8,1.8,"I. virginica"
128 | 6.1,3,4.9,1.8,"I. virginica"
129 | 6.4,2.8,5.6,2.1,"I. virginica"
130 | 7.2,3,5.8,1.6,"I. virginica"
131 | 7.4,2.8,6.1,1.9,"I. virginica"
132 | 7.9,3.8,6.4,2,"I. virginica"
133 | 6.4,2.8,5.6,2.2,"I. virginica"
134 | 6.3,2.8,5.1,1.5,"I. virginica"
135 | 6.1,2.6,5.6,1.4,"I. virginica"
136 | 7.7,3,6.1,2.3,"I. virginica"
137 | 6.3,3.4,5.6,2.4,"I. virginica"
138 | 6.4,3.1,5.5,1.8,"I. virginica"
139 | 6,3,4.8,1.8,"I. virginica"
140 | 6.9,3.1,5.4,2.1,"I. virginica"
141 | 6.7,3.1,5.6,2.4,"I. virginica"
142 | 6.9,3.1,5.1,2.3,"I. virginica"
143 | 5.8,2.7,5.1,1.9,"I. virginica"
144 | 6.8,3.2,5.9,2.3,"I. virginica"
145 | 6.7,3.3,5.7,2.5,"I. virginica"
146 | 6.7,3,5.2,2.3,"I. virginica"
147 | 6.3,2.5,5,1.9,"I. virginica"
148 | 6.5,3,5.2,2,"I. virginica"
149 | 6.2,3.4,5.4,2.3,"I. virginica"
150 | 5.9,3,5.1,1.8,"I. virginica"
151 |
--------------------------------------------------------------------------------
/doc/data/tutorial-2/d1.csv:
--------------------------------------------------------------------------------
1 | 1,5
2 | 2,10
3 | 3,14
4 | 4,12
5 | 5,22
6 | 6,6
7 | 7,5
8 |
--------------------------------------------------------------------------------
/doc/data/tutorial-2/d10.csv:
--------------------------------------------------------------------------------
1 | -0.21991614
2 | -1.21243350
3 | 0.25558776
4 | -0.13629943
5 | -2.22833941
6 | -1.60829920
7 | -0.55755778
8 | -0.23925929
9 | 0.40663494
10 | 0.99105558
11 | -0.95120549
12 | -1.67478975
13 | -0.14602045
14 | -0.01902537
15 | -0.40205444
16 | 1.44275512
17 | -1.05451039
18 | -1.01921213
19 | 1.03799046
20 | -0.33640740
21 |
--------------------------------------------------------------------------------
/doc/data/tutorial-2/d3.json:
--------------------------------------------------------------------------------
1 | [{ "a": 1, "b": 5 },
2 | { "a": 2, "b": 10 },
3 | { "a": 3, "b": 14 },
4 | { "a": 4, "b": 12 },
5 | { "a": 5, "b": 22 },
6 | { "a": 6, "b": 6 },
7 | { "a": 7, "b": 5 }]
8 |
--------------------------------------------------------------------------------
/doc/data/tutorial-2/d4.json:
--------------------------------------------------------------------------------
1 | [{ "a": 1, "b": 5 },
2 | { "a": 2, "b": 10 },
3 | { "a": 3, "b": 14 },
4 | { "a": 4, "b": 12 },
5 | { "a": 5, "b": 22 },
6 | { "a": 6, "b": 6 },
7 | { "a": 7, "b": 5 }]
8 |
--------------------------------------------------------------------------------
/doc/data/tutorial-2/d5.csv:
--------------------------------------------------------------------------------
1 | "2012-01-01", 3.80
2 | "2012-01-02", 5.50
3 | "2012-01-03", 7.90
4 | "2012-01-04", 8.50
5 | "2012-01-05", 4.90
6 | "2012-01-06", 2.70
7 | "2012-01-07", 5.70
8 | "2012-01-08", 6.50
9 | "2012-01-09", 6.80
10 | "2012-01-10", 2.20
11 | "2012-01-11", 1.40
12 | "2012-01-12", 1.60
13 | "2012-01-13", -0.10
14 | "2012-01-14", 1.70
15 |
--------------------------------------------------------------------------------
/doc/data/tutorial-2/d8.csv:
--------------------------------------------------------------------------------
1 | 1,34
2 | 2,22
3 | 3,53
4 | 4,27
5 | 5,13
6 | 6,8
7 | 7,5
8 | 8,12
9 | 9,29
10 | 10,44
11 | 11,27
12 | 12,30
13 |
--------------------------------------------------------------------------------
/doc/data/tutorial-2/d9.csv:
--------------------------------------------------------------------------------
1 | 1,34,10
2 | 2,22,20
3 | 3,53,50
4 | 4,27,20
5 | 5,13,30
6 | 6,8,40
7 | 7,5,10
8 | 8,12,5
9 | 9,29,40
10 | 10,44,20
11 | 11,27,10
12 | 12,30,5
13 |
--------------------------------------------------------------------------------
/doc/documentation.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Documentation
4 | ---
5 |
6 | # Documentation
7 |
8 | ### [Tutorial](tutorial)
9 | ### [Reference manual](ref-manual)
10 | ### [Examples gallery](gallery)
11 |
12 | There is also technical documentation for Radian developers on the
13 | GitHub [wiki](https://github.com/openbrainsrc/Radian/wiki) associated
14 | with the project.
15 |
--------------------------------------------------------------------------------
/doc/download.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Download
4 | ---
5 |
6 | ## Download
7 |
8 | The current release version is 0.1.2, which was released on
9 | 2013-10-09:
10 |
11 | | TGZ | |ZIP | |Date |
12 | |-----|-|-----|-|-----|
13 | |[radian-0.1.3.tar.gz](/downloads/radian-0.1.3.tar.gz)| |[radian-0.1.3.zip](/downloads/radian-0.1.3.zip)| |2013-12-04|
14 | |[radian-0.1.2.tar.gz](/downloads/radian-0.1.2.tar.gz)| |[radian-0.1.2.zip](/downloads/radian-0.1.2.zip)| |2013-10-09|
15 | |[radian-0.1.1.tar.gz](/downloads/radian-0.1.1.tar.gz)| |[radian-0.1.1.zip](/downloads/radian-0.1.1.zip)| |2013-07-30|
16 | |[radian-0.1.tar.gz](/downloads/radian-0.1.tar.gz)| |[radian-0.1.zip](/downloads/radian-0.1.zip)| |2013-07-10|
17 |
18 |
19 | ## GitHub repository
20 |
21 | The latest version of the source code, including tags for all
22 | releases, is always available in our
23 | [GitHub repository](https://github.com/openbrainsrc/Radian).
24 |
25 |
26 | ## Changelog
27 |
28 | ##### Version 0.1.3 (2013-12-04)
29 |
30 | - Axis type switching UI
31 | - Histogram bin count UI
32 | - Improved UI interactivity
33 |
34 | ##### Version 0.1.2 (2013-10-09)
35 |
36 | - Move custom version of estraverse into Radian code
37 | - Begin UI reorganisation
38 | - Basic categorical data handling: bar charts, grouping, ordering,
39 | simple box plots
40 | - Fix behaviour of Radian expression free variable watchers for
41 | function values.
42 | - Improve data download behaviour: changes to `SRC` attributes now
43 | trigger data download.
44 | - Fix treatment of Angular expressions in attributes.
45 | - Fix JSON date handling (issue #24).
46 | - Add `nub` function to plotting library.
47 | - Add `flatten` function to plotting library to help with using
48 | hierarchical JSON data.
49 | - Make JSON data processing more lenient: string values that can be
50 | interpreted as numbers are converted to numeric values.
51 |
52 | ##### Version 0.1.1 (2013-07-30)
53 |
54 | - Fix for processing of dates in JSON data.
55 | - Data type for `` with `SRC` defaults to JSON if no
56 | `TYPE` attribute is given.
57 |
--------------------------------------------------------------------------------
/doc/downloads/radian-0.1.1.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/downloads/radian-0.1.1.tar.gz
--------------------------------------------------------------------------------
/doc/downloads/radian-0.1.1.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/downloads/radian-0.1.1.zip
--------------------------------------------------------------------------------
/doc/downloads/radian-0.1.2.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/downloads/radian-0.1.2.tar.gz
--------------------------------------------------------------------------------
/doc/downloads/radian-0.1.2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/downloads/radian-0.1.2.zip
--------------------------------------------------------------------------------
/doc/downloads/radian-0.1.3.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/downloads/radian-0.1.3.tar.gz
--------------------------------------------------------------------------------
/doc/downloads/radian-0.1.3.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/downloads/radian-0.1.3.zip
--------------------------------------------------------------------------------
/doc/downloads/radian-0.1.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/downloads/radian-0.1.tar.gz
--------------------------------------------------------------------------------
/doc/downloads/radian-0.1.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/downloads/radian-0.1.zip
--------------------------------------------------------------------------------
/doc/faq.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: FAQ
4 | ---
5 |
6 | Just a placeholder for now: ask questions and we'll put the answers
7 | here...
8 |
--------------------------------------------------------------------------------
/doc/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/favicon.ico
--------------------------------------------------------------------------------
/doc/font/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/font/FontAwesome.otf
--------------------------------------------------------------------------------
/doc/font/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/font/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/doc/font/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/font/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/doc/font/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/font/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/doc/gallery/eg/12.html:
--------------------------------------------------------------------------------
1 | Function plots #1
2 |
3 | Here we plot some simple functions. The x values which we
4 | generate using Radian's seq
function are shared between
5 | the two plots by setting them in the
6 | surrounding <plot>
directive. The y
7 | values are calculated using the vectorised sin
8 | and cos
functions.
9 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/doc/gallery/eg/13.html:
--------------------------------------------------------------------------------
1 | Function plots #2
2 |
3 | This plot demonstrates the zooming user interface for plots. Drag
4 | on the bottom context panel to focus the upper panel. Click outside
5 | the focused region on the context panel to reset the view.
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/doc/gallery/eg/14.html:
--------------------------------------------------------------------------------
1 | Expression vectorisation)
2 |
3 | The syntax of Radian expressions is a superset of the JavaScript
4 | expression syntax. Radian performs vectorisation of common
5 | arithmetic operators (including the **
exponentiation
6 | operator) and functions, making it easy to express functions of
7 | arrays. Here, we define x -coordinate values and calculate a
8 | polynomial function of x to give the y -coordinates.
9 | The expression for y is automatically applied to all of the
10 | values in the x array.
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/doc/gallery/eg/15.html:
--------------------------------------------------------------------------------
1 | Data binding
2 |
3 | Binding UI elements to data values is easy with Angular. Radian
4 | exploits this by making all Angular scope variables available within
5 | Radian expressions, and by responding to changes in Angular scope
6 | variables used in Radian expressions by re-rendering plots. This
7 | makes it possible to build interactive plots without writing a line
8 | of JavaScript.
9 |
10 | Mean
11 |
12 | Standard deviation
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/doc/gallery/eg/19.html:
--------------------------------------------------------------------------------
1 | Log axes
2 |
3 | This example shows how to do very simple binding to user interface
4 | elements in a web page using Angular's data binding capabilities.
5 | It also shows the use of the AXIS-Y-TRANSFORM
attribute
6 | to plot data on logarithmic axes.
7 |
9 | Axis type
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/doc/gallery/eg/21.html:
--------------------------------------------------------------------------------
1 | Basic bar chart
2 |
3 |
5 |
6 |
7 |
8 |
9 | 1, 2
10 | 2, 4
11 | 3, 8
12 | 4, 16
13 | 5, 32
14 | 6, 48
15 | 7, 24
16 | 8, 12
17 | 9, 6
18 | 10, 3
19 |
20 |
--------------------------------------------------------------------------------
/doc/gallery/eg/26.html:
--------------------------------------------------------------------------------
1 | Discrete palette
2 |
3 | Discrete palettes map from discrete sets of labels (here
4 | “male” and “female”) to discrete sets of
5 | colours. The <palette>
directive creates
6 | a palette function which can be called from Radian
7 | expressions.
8 |
9 | female #FF7F7F; male #7F7FFF
10 |
11 |
12 |
15 |
16 |
17 |
18 |
19 | Tom,35.1,6.3,male,20
20 | Harriet,1.5,2.1,female,10
21 | Antonia,35.2,5.1,female,25
22 | Ada,4.5,3.1,female,12
23 | Foo,10.1,3.9,female,15
24 | Bar,80.4,9.1,female,22
25 | Baz,5.2,3.2,male,13
26 | Jim,60.1,8.1,male,24
27 | Ted,70.1,9.1,male,18
28 | Jerry,40.6,7,male,16
29 |
30 |
--------------------------------------------------------------------------------
/doc/gallery/eg/27.html:
--------------------------------------------------------------------------------
1 | Discrete marker palette
2 |
3 | Palettes can in fact be used to map from any set of discrete labels
4 | to any other set, so can be used to map from labels to markers for
5 | example.
6 |
7 | female circle; male square
8 |
9 |
10 |
13 |
15 |
16 |
17 |
18 | Tom,35.1,6.3,male,20
19 | Harriet,1.5,2.1,female,10
20 | Antonia,35.2,5.1,female,25
21 | Ada,4.5,3.1,female,12
22 | Foo,10.1,3.9,female,15
23 | Bar,80.4,9.1,female,22
24 | Baz,5.2,3.2,male,13
25 | Jim,60.1,8.1,male,24
26 | Ted,70.1,9.1,male,18
27 | Jerry,40.6,7,male,16
28 |
29 |
--------------------------------------------------------------------------------
/doc/gallery/eg/28.html:
--------------------------------------------------------------------------------
1 | Functions with palettes
2 |
3 | Palettes can be applied to function plots as easily as to data
4 | plots. Here we see an example where the stroke colour is varied
5 | along the plotted curves. Radian attempts to break such curves into
6 | a relatively small number of segments for stroking to keep things
7 | efficient.
8 |
9 | 0 blue; 0.5 grey; 1 red
10 |
11 |
12 |
13 | 0 green; 0.5 yellow; 1 orange
14 |
15 |
16 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/doc/gallery/eg/31.html:
--------------------------------------------------------------------------------
1 | Using <plot-options>
2 |
3 | The <plot-options>
directive can be used to
4 | capture common attributes that are shared between a group of plots,
5 | or just to make things clearer. Here, we just set up some paint
6 | attributes for two simple plots.
7 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/doc/gallery/eg/33.html:
--------------------------------------------------------------------------------
1 | Banded palettes
2 |
3 | Banded palettes do not interpolate colours, but assign constant
4 | colours to ranges of their input.
5 |
6 | 0 blue; 0.5 red
7 |
8 |
9 |
10 | 0 green; 0.5 orange
11 |
12 |
13 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/doc/gallery/eg/34.html:
--------------------------------------------------------------------------------
1 | Data access via URL
2 |
3 | Instead of providing data within the body of
4 | a <plot-data>
directive, we can load it from a
5 | URL passed via <plot-data>
's SRC
6 | attribute.
7 |
8 |
9 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/doc/gallery/eg/38.html:
--------------------------------------------------------------------------------
1 | Stroke gradient palette
2 |
3 | This example varies the stroke colour along a curve to reflect the
4 | gradient of the curve — red colours for negative gradients,
5 | blue for positive and grey for maxima and minima.
6 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/doc/gallery/eg/39.html:
--------------------------------------------------------------------------------
1 | Health & Wealth of Nations
2 |
3 | This rather complex example is an attempt to duplicate one of the
4 | D3.js examples using Radian. Drag the slider to step through the
5 | years of data. There are some dud data points, and a
6 | custom fillIn
function is needed to do data
7 | pre-processing, but it's not bad.
8 |
9 | Year ({{year}})
10 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
28 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/doc/gallery/eg/41.html:
--------------------------------------------------------------------------------
1 | Plot titles
2 |
3 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/doc/gallery/eg/42.html:
--------------------------------------------------------------------------------
1 | Row layout
2 |
3 | Plots laid out in a row:
4 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/doc/gallery/eg/43.html:
--------------------------------------------------------------------------------
1 | Column layout
2 |
3 | Plots laid out in a column:
4 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/doc/gallery/eg/46.html:
--------------------------------------------------------------------------------
1 | Hierarchical layout
2 |
3 | Layout directives can be nested to make more or less any
4 | arrangement of plots that you want.
5 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/doc/gallery/eg/47.html:
--------------------------------------------------------------------------------
1 | Grid layout
2 |
3 | In simple cases, the <plot-grid>
directive can
4 | be easier to use than a tree of <plot-row>
5 | and <plot-col>
directives.
6 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/doc/gallery/eg/49.html:
--------------------------------------------------------------------------------
1 | Font selection
2 |
3 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/doc/gallery/eg/52.html:
--------------------------------------------------------------------------------
1 | Example 52 (simple heat map)
2 |
3 |
4 |
6 |
7 |
8 |
9 | -1.358218406,-1.680180041
10 | 1.019182305,0.372856303
11 | -0.046088243,-1.437769350
12 | -1.652131815,1.508971050
13 | 0.880858861,-1.351061092
14 | -0.421879985,0.460046324
15 | -1.775861788,-0.377353402
16 | -0.432299413,-0.544505160
17 | 0.597065895,1.063556238
18 | 1.018733929,0.516806935
19 | 0.693442592,0.818444791
20 | -0.151663918,0.365657710
21 | -0.484266425,1.106456147
22 | -0.563660625,-0.340853294
23 | 1.027548529,1.374454347
24 | 0.018512709,0.497770566
25 | -0.898245409,-0.273169274
26 | 0.401530957,-0.674111550
27 | -1.614098348,-0.004893727
28 | 0.475737412,-0.167170150
29 | 2.896699296,-1.644885154
30 | 0.369390551,-0.363407053
31 | 0.195674450,0.796902390
32 | -0.455183324,0.579003105
33 | -0.840773769,-1.275440408
34 | 0.201168111,-0.145193347
35 | -0.977505714,-1.097588725
36 | -0.157543842,0.931822793
37 | 1.213436851,1.298792286
38 | -0.095741952,2.106816580
39 | -0.111263004,-2.078441409
40 | -1.052447580,0.491906540
41 | -0.223993725,0.596251685
42 | -0.052027197,0.232441049
43 | 1.649155223,1.106705488
44 | 0.034758550,0.089969971
45 | 0.630451636,-2.019073856
46 | 0.317187144,0.159083991
47 | 0.907639885,0.389694700
48 | 3.507502055,0.745939039
49 | 0.241160732,0.863903018
50 | -1.626223538,1.011512303
51 | 0.989728940,1.009256748
52 | 0.617118223,-0.954345976
53 | 1.281573323,-0.980004467
54 | 0.495453751,-0.368463663
55 | 0.123889926,-1.535610105
56 | 0.335354589,0.014701983
57 | -0.338484233,-0.666617714
58 | 1.027240081,-0.576596127
59 | 0.171040222,0.260085664
60 | 0.111490346,-0.164757454
61 | -0.596089124,1.235859094
62 | 0.375068347,1.108377818
63 | 0.875997125,0.491710332
64 | 0.226746929,0.666406706
65 | -2.352907879,-0.200828814
66 | -0.300730546,-0.467913893
67 | 0.206455528,0.983026064
68 | -0.740838462,-1.625012236
69 | -0.282646786,0.966176452
70 | -1.444361250,-0.192205832
71 | 1.215377424,-0.655657397
72 | -0.717685934,-1.684864615
73 | -0.592155462,-0.063825352
74 | 2.519884926,-1.399751647
75 | -0.235264465,-1.448776053
76 | 0.168046668,-0.677469532
77 | -0.858446520,0.075247524
78 | -0.426844135,0.138844531
79 | -1.010234356,0.591016780
80 | 0.679895798,0.764228183
81 | -0.387500047,-1.692940404
82 | 2.520777242,1.920958205
83 | -0.488662927,0.472892173
84 | 0.009272712,-0.936161622
85 | -0.053498613,0.573661462
86 | -0.457075249,0.502713786
87 | -0.574686946,-0.257165813
88 | 0.285084048,0.307028734
89 | -0.445707159,0.529429678
90 | 1.748563380,-1.349685484
91 | 0.428504645,0.141547824
92 | -0.710781981,1.296516455
93 | -0.907194831,-1.654794968
94 | -0.654270763,-1.238840341
95 | -0.174782471,0.165698550
96 | 2.120830108,0.656595369
97 | 0.256434229,-0.068412006
98 | 0.097702199,0.657398908
99 | -1.643564412,-1.029640776
100 | 1.287269469,0.253276516
101 | -0.779834081,-0.752704032
102 | -0.400443388,-0.144411218
103 | 0.864388402,-1.466337337
104 | -0.326945256,-2.497433918
105 | 0.312223956,0.377362888
106 | 0.948793386,0.738802681
107 | 0.456457305,0.478290244
108 | 0.466944067,-0.500205475
109 |
110 |
--------------------------------------------------------------------------------
/doc/gallery/eg/67.html:
--------------------------------------------------------------------------------
1 | Data access via URL with Angular binding
2 |
3 | The SRC
attribute in
4 | the <plot-data>
directive can be given an Angular
5 | expression, allowing data sources to be selected dynamically. Here,
6 | we use Angular data binding to select a stock symbol, and build a
7 | data source URL using this from an Angular expression. As we select
8 | a stock symbol, a HTTP request is triggered to download the new data
9 | set. When the data set is retrieved, a replot is triggered.
10 |
11 |
12 | Data set
13 |
14 | CSCO
15 | DELL
16 | FB
17 | GOOG
18 | MSFT
19 | YHOO
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/doc/gallery/eg/74.html:
--------------------------------------------------------------------------------
1 | Histograms bin size and axis UI
2 |
3 | Mouse over the plot to see the UI elements you can use to
4 | manipulate the plot axis type and bin count.
5 |
8 |
9 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/doc/gallery/index.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Radian Gallery
4 | ---
5 |
6 |
27 |
--------------------------------------------------------------------------------
/doc/img/radian-logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/img/radian-logo-small.png
--------------------------------------------------------------------------------
/doc/news.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: News archive
4 | ---
5 |
6 | ## News archive
7 | {% for post in site.tags.news %}
8 | ---
9 |
10 | {{ post.title }}
11 |
12 | {{ post.date | date: "%e" }}
13 | {{ post.date | date: "%b" }}
14 | {{ post.date | date: "%Y" }}
15 |
16 |
17 | {{ post.content }}
18 | {% endfor %}
19 |
--------------------------------------------------------------------------------
/doc/radian-docs:
--------------------------------------------------------------------------------
1 | ./build/dist_Radian/build/radian-docs/radian-docs
--------------------------------------------------------------------------------
/doc/ref-manual/10-radian-plotting-library.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Reference manual - Radian plotting library
4 | ---
5 |
6 | # 9. The Radian plotting library
7 |
8 | Within Radian expressions, a standard set of constants and functions
9 | are made available. Some of these are standard JavaScript functions,
10 | some are adapted from the D3 plotting library, and some are unique to
11 | Radian.
12 |
13 |
14 | ## JavaScript standard functions
15 |
16 | The following constants and functions from the `Math.xxx` JavaScript
17 | scope are brought into scope within data accessor expressions
18 | (i.e. one can write "`sin(x)`" instead of "`Math.sin(x)`"): `E`,
19 | `LN10`, `LN2`, `LOG10E`, `LOG2E`, `PI`, `SQRT1_2`, `SQRT2`, `abs`,
20 | `acos`, `asin`, `atan`, `atan2`, `ceil`, `cos`, `exp`, `floor`, `log`,
21 | `pow`, `round`, `sin`, `sqrt`, `tan`.
22 |
23 |
24 | ## D3 functions
25 |
26 | The following functions from the `d3.xxx` JavaScript scope are brought
27 | into scope within data accessor expressions (i.e. one can write
28 | "`extent(x)`" instead of "`d3.extent(x)`"): `min`, `max`, `extent`,
29 | `sum`, `mean`, `median`, `quantile`, `zip`. (In fact, `extent` in
30 | Radian expressions is a variadic function: passing multiple arrays to
31 | `extent` will find the union of their ranges.)
32 |
33 |
34 | ## Extra functions
35 |
36 | `seq`, `seqStep`: Generate evenly spaced sequences of values:
37 | `seq(start, end, n)` produces a sequence of `n` values ranging from
38 | `start` to `end`, while `seqStep(start, end, delta)` produces a
39 | sequence from `start` to `end` in steps of `delta`.
40 |
41 | `sdev`: Calculate the sample standard deviation of an array.
42 |
43 | `unique`: Return the unique entries in an array in the order that they
44 | first appear.
45 |
46 | `flatten`: Flatten a multi-dimensional array into a one-dimensional
47 | array.
48 |
49 | `minBy`, `maxBy`, `sumBy`, `meanBy`, `sdevBy`, `quantileBy`,
50 | `firstBy`: Calculate categorical sums, means, standard deviations and
51 | quantiles of data sets (or extract first element with matching
52 | category): `sumBy(x, y)` calculates the sum of `x` values for each
53 | distinct value of `y`, returning an array of results in the order of
54 | occurrence of the distinct values in `y`. For example, given a
55 | dataset `d` containing daily temperature data with associated dates,
56 | `meanBy(d#temp, d#date#mon)` calculates a monthy seasonal cycle of
57 | temperatures. The `quantileBy` function is called as `quantileBy(x,
58 | y, p)` and calculates the `p`th quantile of the vector `x` segregated
59 | by distinct values of the parameter `y`.
60 |
61 | `normal`: Normal distribution function: `normal(x, mu, sigma)` gives
62 | the value of the normal PDF with mean `mu` and standard deviation
63 | `sigma` at ordinate `x`.
64 |
65 | `lognormal`: Log-normal distribution function: `lognormal(x, mu,
66 | sigma)` gives the value of the log-normal PDF with mean `mu` and
67 | standard deviation `sigma` at ordinate `x`.
68 |
69 | `gamma`: Gamma distribution function: `gamma(x, k, theta)` gives the
70 | value of the gamma PDF with shape parameter `k` and scale parameter
71 | `theta` at ordinate `x`.
72 |
73 | `invgamma`: Inverse gamma distribution function: `invgamma(x, alpha,
74 | beta)` gives the value of the inverse gamma PDF with shape parameter
75 | `alpha` and scale parameter `beta` at ordinate `x`.
76 |
77 |
78 | ## Histogramming
79 |
80 | The Radian plotting library also contains a `histogram` function for
81 | histogram binning calculations. This is called either as
82 | `histogram(xs, nbins)` with `nbins` an integer count of the number of
83 | bins to use, or as `histogram(xs, opts)` with `opts` an object with
84 | some of the following fields:
85 |
86 | * `transform`: either a string (one of `linear` or `log`) or a
87 | two-element array of functions giving forward and inverse coordinate
88 | transformations; if the `transform` argument is supplied, histogram
89 | binning is done in transformed coordinates, with bin centres and
90 | extents being transformed back to the original coordinate values
91 | before return.
92 |
93 | * `binrange`: data range over which bins are to be generated; if
94 | omitted, the binning range is calculated from the data;
95 |
96 | * `nbins`: number of histogram bins to use;
97 |
98 | * `binwidth`: width of histogram bins to use (in transformed
99 | coordinates); not used if `nbins` is supplied.
100 |
101 | The return value of the `histogram` function is an object with the
102 | following fields:
103 |
104 | * `centres`: histogram bin centres;
105 |
106 | * `bins`: array of two-element arrays giving the minimum and maximum
107 | bounds for each histogram bin (this is useful when using the
108 | `transform` argument to `histogram`, since, for nonlinear
109 | coordinate transformations, the histogram bins are no longer
110 | symmetric about their centres, and are no longer of a uniform
111 | size);
112 |
113 | * `counts`: integer counts of data items in each bin;
114 |
115 | * `freqs`: fraction of data items in each bin;
116 |
117 | * `probs`: probability of data items falling into each bin, defined
118 | so that the integral of the bar chart constructed using the
119 | coordinate ranges in `bins` and these values is unity.
120 |
--------------------------------------------------------------------------------
/doc/ref-manual/A-reserved-names.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Reference manual - Appendix: reserved names
4 | ---
5 |
6 | # Appendix: Reserved names
7 |
8 |
9 | ## Directives
10 |
11 | The following directive names are reserved and implemented within
12 | Radian: ` `, ``, ``, ``, ``,
13 | ``, ``, ``, ``, ``,
14 | ``, ``, ``.
15 |
16 |
17 | ## Attributes
18 |
19 | The following attributes names are reserved for use by Radian
20 | directives: `axis-x`, `axis-x-label`, `axis-x2`, `axis-y`,
21 | `axis-y-label`, `axis-y2`, `banded`, `clip-x`, `clip-y`, `cols`,
22 | `error-for`, `fill`, `fill-opacity`, `format`, `id`, `interp`,
23 | `label`, `legend-switches`, `marker`, `marker-size`, `name`, `range`,
24 | `range-x`, `range-y`, `rows`, `select-x`, `select-y`, `separator`,
25 | `src`, `stroke`, `stroke-opacity`, `stroke-switch`, `stroke-width`,
26 | `tabs`, `title`, `type`, `units`, `x`, `x2`, `y`, `y2`, `zoom-2d`,
27 | `zoom-x`, `zoom-y`.
28 |
29 | Any other attribute name applied to a plotting
30 | directive brings a name into scope for data access expression
31 | evaluation.
32 |
--------------------------------------------------------------------------------
/doc/ref-manual/index.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Reference manual
4 | ---
5 |
6 | # Reference manual
7 |
8 | Throughout the body of this manual, text in grey
9 | italics describes functionality that is not yet implemented.
10 |
11 | **While Radian is still in its early development phase, this reference
12 | manual describes the functionality implemented in the HEAD of the
13 | Radian GitHub repository. The releases on the Download page include
14 | a subset of this functionality. Once Radian is stable, we will tag
15 | sets of documentation for individual releases.**
16 |
17 | The **Radian** plotting library provides a convenient approach to
18 | embedding SVG plots in HTML documents. Plots are specified using
19 | custom HTML-like elements (e.g. ``, ``, ``,
20 | etc.) whose attributes and contents are used to control plot
21 | appearance and plot data. A flexible expression syntax is provided to
22 | make the access of compound JSON datasets simple, and to allow for
23 | grouping and simple processing of data for plotting.
24 |
25 | **Radian** works by combining the benefits of the AngularJS JavaScript
26 | framework with the data visualisation capabilities of the D3.js
27 | library. A Haskell combinator library is provided
28 | for easy server-side rendering of plots.
29 |
30 | ### [1. Data sets](01-data-sets.html)
31 | ### [2. Data accessor syntax](02-data-accessor-syntax.html)
32 | ### [3. Categorical data](03-categorical-data.html)
33 | ### [4. The main plotting directive](04-plot-directive.html)
34 | ### [5. Plot types](05-plot-types.html)
35 | ### [6. Palettes and interpolators](06-palettes-and-interpolators.html)
36 | ### [7. Plot legends](07-legends.html)
37 | ### [8. User interface features](08-user-interface-features.html)
38 | ### [9. Plot layout directives](09-plot-layout-directives.html)
39 | ### [10. The Radian plotting library](10-radian-plotting-library.html)
40 | ### [Appendix. Reserved names](A-reserved-names.html)
41 |
42 |
43 | ## Caveat
44 |
45 | Because of the way that browsers parse HTML pages, it is, in general,
46 | not possible to use XML's compact tag syntax ` ` for
47 | custom tags that are not part of the HTML standard even if these tags
48 | do not have any content. This means that all custom tags must be
49 | closed by an explicit close tag, even if there is no content within
50 | the tag. For example, `` tags must always be immediately
51 | closed by a ` `.
52 |
--------------------------------------------------------------------------------
/doc/roadmap.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Roadmap
4 | ---
5 |
6 | We have a big pile of stuff we want to do to Radian. To a large
7 | extent, what we (Ian and Tom) work on is driven by the needs of the
8 | [BayesHive](http://www.bayeshive.com) project, but we'll be trying to
9 | implement other features as we can.
10 |
11 | If you have features that you particularly need, let us know and we'll
12 | see what we can do about helping you out. (It you're really desperate
13 | for something, you can try offering to pay us. Depending on how much
14 | other stuff we have going on, that might work!) If you want to help
15 | develop any of these features, really do let us know. We'd be
16 | delighted to get some more people working on this stuff. (You can
17 | just push pull requests at us on GitHub if you like, but we're
18 | actively developing Radian, so it might be useful for you to know what
19 | we're working on and what we're not, so as to avoid duplicated
20 | effort.)
21 |
22 | ### Things we're going to do soon
23 |
24 | * Better management of axis formatting, ticks and so on: some of this
25 | is done, but it could be better.
26 | * Better support for categorical data, particularly for bar charts: I
27 | copped out on doing this when I first did bar charts, but it's been
28 | on my list for a while, and it's something that's used a lot in
29 | statistics.
30 | * Heatmaps, including hex-binning and categorical heatmaps: these are
31 | useful for all sorts of data, and hex-binned heatmaps are very
32 | nice.
33 | * More "bar type" plots, especially box plots and things of various
34 | "bar and whisker" flavours: we do statistics; statisticians love
35 | this stuff.
36 | * Real legend management: at the moment, legends in Radian are far
37 | from legendary.
38 | * Optimisation: Radian isn't very efficient. I've been concentrating
39 | on making it work before making it fast. There are a number of
40 | places where things could be cached, pre-computed or just sped up.
41 |
42 | ### Bigger jobs we want to do as soon as we can
43 |
44 | * Reflective styling UI: this is a little complicated to explain, but
45 | the basic idea is that there will be a UI that you can enable for
46 | each Radian plot that allows you to directly manipulate the styling
47 | of the plot (changing colours, fonts, axis types, whatever); the
48 | "reflective" part is that those changes will be advertised as some
49 | sort of Angular events, so that if you want to, you can persist the
50 | changes back to a server. We're embedding Radian plots in literate
51 | documents built from a statistical modelling language, and we want
52 | people to be able to produce quick plots without caring about the
53 | styling, then manipulate the styling via this UI and have the
54 | changes they make reflected in the code that's used to generate the
55 | plots. Not a small job, but could be super cool.
56 | * Contour plots: useful for all sorts of 2.5-D and 3-D data.
57 | * Kernel density estimation for 1-D and 2-D data: this is important
58 | to us for plotting credible regions on empirical probability
59 | density functions, but it's useful for a lot of other things too.
60 |
61 | ### Big jobs that we'd like to do, but don't know when
62 |
63 | * WebGL backend: this could potentially help a lot with speeding up
64 | handling of interactive plots, but it's quite a bit of work,
65 | particularly since Radian relies on D3.js to do much of the heavy
66 | lifting of plot generation, and we'd have to reimplement all that
67 | stuff ourselves to drive a WebGL backend. Could be worth it
68 | though.
69 | * Maps: we want to be able to say "``" instead of "``" and
70 | have a Leaflet map that we can drop Radian plots onto. Not
71 | super-hard, but quite a bit of work, and not something we'll get
72 | around to until we're dealing with spatial statistics in BayesHive.
73 |
74 |
--------------------------------------------------------------------------------
/doc/templates/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Radian - $title$
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
31 |
32 | $body$
33 |
34 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/doc/templates/post.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 | $title$
6 |
7 | $date$
8 |
9 | $body$
10 |
--------------------------------------------------------------------------------
/doc/tmp/about.rst:
--------------------------------------------------------------------------------
1 | ---
2 | title: About
3 | ---
4 | Nullam imperdiet sodales orci vitae molestie. Nunc quam orci, pharetra a
5 | rhoncus vitae, eleifend id felis. Suspendisse potenti. Etiam vitae urna orci.
6 | Quisque pellentesque dignissim felis, egestas tempus urna luctus vitae. In hac
7 | habitasse platea dictumst. Morbi fringilla mattis odio, et mattis tellus
8 | accumsan vitae.
9 |
10 | 1. Amamus Unicode 碁
11 | 2. Interdum nex magna.
12 |
13 | Vivamus eget mauris sit amet nulla laoreet lobortis. Nulla in diam elementum
14 | risus convallis commodo. Cras vehicula varius dui vitae facilisis. Proin
15 | elementum libero eget leo aliquet quis euismod orci vestibulum. Duis rhoncus
16 | lorem consequat tellus vestibulum aliquam. Quisque orci orci, malesuada porta
17 | blandit et, interdum nec magna.
18 |
--------------------------------------------------------------------------------
/doc/tmp/contact.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | title: Contact
3 | ---
4 |
5 | I live in a small hut in the mountains of Kumano Kodō on Kii Hantō and would not
6 | like to be contacted.
7 |
--------------------------------------------------------------------------------
/doc/tmp/css/default.css:
--------------------------------------------------------------------------------
1 | body {
2 | color: black;
3 | font-size: 16px;
4 | margin: 0px auto 0px auto;
5 | width: 600px;
6 | }
7 |
8 | div#header {
9 | border-bottom: 2px solid black;
10 | margin-bottom: 30px;
11 | padding: 12px 0px 12px 0px;
12 | }
13 |
14 | div#logo a {
15 | color: black;
16 | float: left;
17 | font-size: 18px;
18 | font-weight: bold;
19 | text-decoration: none;
20 | }
21 |
22 | div#header #navigation {
23 | text-align: right;
24 | }
25 |
26 | div#header #navigation a {
27 | color: black;
28 | font-size: 18px;
29 | font-weight: bold;
30 | margin-left: 12px;
31 | text-decoration: none;
32 | text-transform: uppercase;
33 | }
34 |
35 | div#footer {
36 | border-top: solid 2px black;
37 | color: #555;
38 | font-size: 12px;
39 | margin-top: 30px;
40 | padding: 12px 0px 12px 0px;
41 | text-align: right;
42 | }
43 |
44 | h1 {
45 | font-size: 24px;
46 | }
47 |
48 | h2 {
49 | font-size: 20px;
50 | }
51 |
52 | div.info {
53 | color: #555;
54 | font-size: 14px;
55 | font-style: italic;
56 | }
57 |
--------------------------------------------------------------------------------
/doc/tmp/images/haskell-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/doc/tmp/images/haskell-logo.png
--------------------------------------------------------------------------------
/doc/tmp/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | title: Home
3 | ---
4 |
5 | Welcome
6 |
7 |
8 |
9 | Welcome to my blog!
10 |
11 | I've reproduced a list of recent posts here for your reading pleasure:
12 |
13 | Posts
14 | $partial("templates/post-list.html")$
15 |
16 | …or you can find more in the archives .
17 |
--------------------------------------------------------------------------------
/doc/tmp/posts/2012-08-12-spqr.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | title: S.P.Q.R.
3 | ---
4 |
5 | Mauris in lorem nisl. Maecenas tempus facilisis ante, eget viverra nisl
6 | tincidunt et. Donec turpis lectus, mattis ac malesuada a, accumsan eu libero.
7 | Morbi condimentum, tortor et tincidunt ullamcorper, sem quam pretium nulla, id
8 | convallis lectus libero nec turpis. Proin dapibus nisi id est sodales nec
9 | ultrices tortor pellentesque. Vivamus vel nisi ac lacus sollicitudin vulputate
10 | ac ut ligula. Nullam feugiat risus eget eros gravida in molestie sapien euismod.
11 | Nunc sed hendrerit orci. Nulla mollis consequat lorem ac blandit. Ut et turpis
12 | mauris. Nulla est odio, posuere id ullamcorper sit amet, tincidunt vel justo.
13 | Curabitur placerat tincidunt varius. Nulla vulputate, ipsum eu consectetur
14 | mollis, dui nibh aliquam neque, at ultricies leo ligula et arcu. Proin et mi
15 | eget tellus sodales lobortis. Sed tempor, urna vel pulvinar faucibus, lectus
16 | urna vehicula ante, at facilisis dolor odio at lorem. Morbi vehicula euismod
17 | urna, et imperdiet urna ornare vitae.
18 |
19 | Sed tincidunt sollicitudin ultrices. In hac habitasse platea dictumst. Morbi
20 | ligula lectus, egestas at ultricies nec, fringilla et tellus. Duis urna lorem,
21 | bibendum a ornare sed, euismod sed nunc. Aliquam tempor massa at velit fringilla
22 | fringilla. Praesent sit amet tempor felis. Maecenas id felis ac velit aliquam
23 | tempor a sit amet orci. Nunc placerat nulla pellentesque sem commodo cursus.
24 | Praesent quis sapien orci, quis ultricies augue. Nam vestibulum sem non augue
25 | semper tincidunt pellentesque ipsum volutpat. Duis congue, nunc a aliquam
26 | luctus, quam ante convallis nisi, ac pellentesque lacus orci vel turpis. Cum
27 | sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
28 | mus. Suspendisse hendrerit nisl eu felis sagittis faucibus. Nunc eu congue
29 | lorem. Quisque non nibh nisi, et ultrices massa. Sed vitae erat vitae nulla
30 | pellentesque fermentum.
31 |
32 | Ut diam nunc, consectetur ut ultrices eu, iaculis sed felis. Sed lacinia, odio
33 | et accumsan luctus, arcu ipsum accumsan erat, sit amet malesuada libero lacus et
34 | velit. Donec accumsan tristique tristique. Proin a metus magna, vitae mattis
35 | nisl. Integer a libero ipsum. Mauris faucibus eleifend metus id sodales. Morbi
36 | ornare, nibh nec facilisis imperdiet, turpis sem commodo lorem, id commodo
37 | mauris metus vitae justo. Etiam at pellentesque tortor. Proin mollis accumsan
38 | ligula, nec tempus augue auctor quis. Nulla lacinia, mi quis lobortis auctor,
39 | nisi diam posuere dui, pulvinar feugiat dui libero eget quam. Fusce eu risus
40 | nunc, a consectetur orci. Class aptent taciti sociosqu ad litora torquent per
41 | conubia nostra, per inceptos himenaeos. Maecenas venenatis aliquet orci, a
42 | ultricies sem facilisis eu. Donec dolor purus, porta condimentum convallis nec,
43 | dignissim nec libero.
44 |
45 | Etiam rutrum ultricies dui, et interdum metus elementum et. Nulla sapien nunc,
46 | interdum tristique porttitor in, laoreet vitae mi. Ut vehicula auctor mauris sit
47 | amet bibendum. Phasellus adipiscing mattis libero, eget adipiscing erat
48 | dignissim at. Vivamus convallis malesuada metus nec cursus. Ut cursus, lorem
49 | eleifend sollicitudin condimentum, felis tortor sodales augue, ac tempus lacus
50 | ipsum vitae quam. Vestibulum vitae lacus non tortor vehicula iaculis faucibus
51 | quis massa.
52 |
53 | Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
54 | mus. Duis malesuada neque nec ante porttitor accumsan. Suspendisse potenti.
55 | Aliquam in lacus magna, imperdiet laoreet lectus. Praesent id diam nec ante
56 | commodo rhoncus nec vel augue. Pellentesque tortor massa, dignissim ut sagittis
57 | sed, hendrerit vitae nunc. Nam gravida, urna vitae hendrerit rutrum, felis augue
58 | vulputate tortor, ut varius velit libero nec lectus. In adipiscing massa in est
59 | scelerisque ullamcorper. Vivamus in nisi metus.
60 |
--------------------------------------------------------------------------------
/doc/tmp/posts/2012-10-07-rosa-rosa-rosam.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | title: Rosa Rosa Rosam
3 | author: Ovidius
4 | ---
5 |
6 | Suspendisse pharetra ullamcorper sem et auctor. Suspendisse vitae tellus eu
7 | turpis dignissim gravida ut ut tortor. Cum sociis natoque penatibus et magnis
8 | dis parturient montes, nascetur ridiculus mus. Morbi aliquam sapien quis nisl
9 | sodales non aliquet nisl iaculis. Curabitur fermentum orci vel sapien
10 | pellentesque id condimentum metus vehicula. Curabitur turpis purus, scelerisque
11 | at interdum quis, placerat sit amet tortor. Aliquam erat volutpat.
12 |
13 | Integer posuere felis non arcu suscipit ullamcorper. Nam tempus risus venenatis
14 | orci sagittis eu aliquam ante tincidunt. Aenean vehicula ipsum id sapien
15 | tincidunt commodo. Aliquam erat volutpat. Curabitur vehicula libero ac turpis
16 | cursus consectetur. Praesent posuere egestas purus et dapibus. Mauris egestas,
17 | lectus vitae scelerisque ultricies, metus lorem tempor nisi, sed vehicula tortor
18 | mauris nec urna. Quisque urna tellus, facilisis at mollis eget, adipiscing in
19 | nisl. Proin quam arcu, euismod et imperdiet sed, ultricies sed orci.
20 |
21 | Nulla malesuada sem eget lectus scelerisque nec rhoncus metus interdum. In dui
22 | felis, rhoncus id scelerisque eget, vulputate id sem. Nulla facilisi. Vestibulum
23 | eleifend, metus dignissim lacinia ornare, magna nulla vehicula nisi, sed
24 | molestie mauris ipsum vel turpis. Class aptent taciti sociosqu ad litora
25 | torquent per conubia nostra, per inceptos himenaeos. Nulla urna leo, vehicula
26 | eget dignissim a, hendrerit ut risus. Fusce ultricies elementum placerat. Nam at
27 | dolor sed nisi mollis sollicitudin vitae at urna. Vestibulum iaculis adipiscing
28 | eros et mollis.
29 |
30 | Phasellus ultricies elit eu risus sagittis eu dictum ante ultrices. Nulla
31 | congue, augue ac placerat tempor, orci mi luctus nisi, at varius ipsum sem sed
32 | eros. Vivamus eget velit eget felis posuere ornare. In sed metus non est iaculis
33 | facilisis dapibus sit amet enim. Aliquam viverra tortor eget neque volutpat in
34 | auctor urna rutrum. Aliquam ligula augue, congue sit amet rutrum in, semper vel
35 | nulla. Sed tempus porttitor faucibus. Donec cursus sodales nulla, quis lacinia
36 | mi vehicula vel. Sed nec purus orci. Nam leo sapien, rutrum a ultrices quis,
37 | placerat vel ligula. Donec massa quam, pellentesque et molestie nec, hendrerit
38 | id mauris. In hac habitasse platea dictumst. Cras quis quam sem. Curabitur in
39 | arcu diam, in interdum mauris.
40 |
41 | Proin lorem sapien, iaculis et faucibus nec, dictum sed nunc. Pellentesque in
42 | purus justo. Vestibulum facilisis rutrum nisi, a egestas nunc suscipit sed. Ut
43 | quis tortor a arcu bibendum placerat non sed ante. Praesent orci sem, posuere
44 | sit amet cursus molestie, volutpat ut purus. Curabitur aliquam, purus in
45 | pharetra viverra, lorem leo aliquam tellus, vel consequat felis neque et mauris.
46 | Aliquam erat volutpat.
47 |
--------------------------------------------------------------------------------
/doc/tmp/posts/2012-11-28-carpe-diem.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | title: Carpe Diem
3 | ---
4 |
5 | Fusce tortor quam, egestas in posuere quis, porttitor vel turpis. Donec
6 | vulputate porttitor augue at rhoncus. Proin iaculis consectetur sagittis.
7 | Curabitur venenatis turpis sit amet purus tristique nec posuere risus laoreet.
8 | Nullam nisi sem, dapibus id semper id, egestas vel arcu. Morbi porttitor ipsum
9 | placerat erat consequat sed consequat purus feugiat. Donec auctor elit ut risus
10 | mattis facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
11 |
12 | Proin vulputate sapien facilisis leo ornare pulvinar. Fusce tempus massa a risus
13 | semper iaculis. Suspendisse sollicitudin posuere nunc, sit amet rutrum leo
14 | facilisis mattis. Sed ornare auctor dui, vitae rutrum neque auctor sit amet.
15 | Proin ac dui magna. Mauris vehicula interdum augue, nec ultrices libero egestas
16 | quis. Nunc convallis euismod ipsum, id sollicitudin orci consequat ac. Fusce
17 | bibendum congue libero, in rutrum nulla congue non. Cras sit amet risus tortor,
18 | eu pellentesque dui. Phasellus euismod enim non nibh sodales quis consectetur
19 | lorem laoreet. Vivamus a egestas quam. Curabitur in tortor augue, vitae varius
20 | tellus. Integer varius, elit ac gravida suscipit, eros erat pellentesque nisi,
21 | et tristique augue odio id nulla. Aliquam sit amet nunc vel tellus hendrerit
22 | tempus ac vel sem.
23 |
24 | Aenean tincidunt sollicitudin sapien ut porttitor. Curabitur molestie adipiscing
25 | lorem vel scelerisque. Donec vitae interdum est. Proin rutrum vulputate
26 | faucibus. Suspendisse sit amet felis odio, non volutpat ante. Sed eu lectus
27 | quam. Curabitur tristique rhoncus est, vel commodo tortor suscipit semper.
28 | Maecenas feugiat vestibulum nisi id facilisis. Nulla non tincidunt libero.
29 | Praesent ultrices interdum commodo. Sed euismod nisl auctor leo ultrices rutrum.
30 | Aliquam nibh felis, congue molestie blandit at, bibendum at eros. Aenean
31 | tincidunt, tortor iaculis placerat sollicitudin, lorem justo tempor diam, et
32 | posuere sapien leo et magna. Quisque vel aliquam mauris.
33 |
34 | Proin varius tempus fermentum. Cum sociis natoque penatibus et magnis dis
35 | parturient montes, nascetur ridiculus mus. Sed tincidunt nunc id magna
36 | adipiscing non sollicitudin turpis tempor. Etiam vel elit ipsum, quis euismod
37 | velit. Quisque elementum magna vitae quam venenatis lacinia. Sed at arcu ipsum.
38 | Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
39 | himenaeos. Donec ut lorem ac sapien cursus lacinia sit amet mollis dolor.
40 | Vivamus tempus odio nec magna faucibus sed hendrerit lorem tempor.
41 |
42 | Vestibulum eu nisi arcu. Curabitur nisi risus, fermentum ut lacinia ut, interdum
43 | nec magna. Nunc aliquet gravida massa, eu aliquam lorem faucibus at. Sed
44 | sollicitudin volutpat velit id tempor. In nibh justo, pharetra et pretium
45 | dignissim, tempus in turpis. Phasellus eget lobortis nisl. Phasellus sed
46 | fermentum diam. Nam tempus pharetra odio, quis congue eros imperdiet eu. Aliquam
47 | dui eros, hendrerit et vulputate vel, porta eu eros. Nullam nisi dui, commodo
48 | eget pharetra ut, ornare sit amet nunc. Fusce vel neque urna. Maecenas nulla
49 | ante, egestas at consequat quis, fermentum a enim. Aliquam id tristique urna.
50 | Integer augue justo, scelerisque et consectetur id, rhoncus eget enim.
51 |
--------------------------------------------------------------------------------
/doc/tmp/posts/2012-12-07-tu-quoque.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | title: Tu Quoque
3 | author: Julius
4 | ---
5 |
6 | Vestibulum leo turpis, dignissim quis ultrices sit amet, iaculis ac ligula.
7 | Pellentesque tristique, velit eget scelerisque scelerisque, est dolor ultrices
8 | arcu, quis ullamcorper justo arcu luctus mauris. Integer congue molestie nisi id
9 | posuere. Fusce pellentesque gravida tempus. Integer viverra tortor nec eros
10 | mollis quis convallis sem laoreet. Nulla id libero ac erat varius laoreet. Proin
11 | sed est est. Curabitur lacinia fermentum lorem, elementum malesuada ipsum
12 | malesuada ut. Donec suscipit elit id leo vehicula mattis non sed leo. Morbi
13 | varius eleifend varius. Nulla vestibulum, neque vitae aliquam eleifend, nisi
14 | tellus placerat nunc, quis suscipit elit turpis eu tortor. Etiam euismod
15 | convallis lectus quis venenatis. Phasellus laoreet magna in nibh cursus eu
16 | egestas nulla convallis. Aliquam vel ullamcorper risus. Fusce dictum, massa id
17 | consequat viverra, nulla ante tristique est, a faucibus nisi enim nec dui. Donec
18 | metus ligula, condimentum at porttitor eget, lobortis at quam.
19 |
20 | Aenean vel libero in magna ultricies congue in a odio. Donec faucibus rutrum
21 | ornare. Fusce dictum eleifend fermentum. Vestibulum vel nibh a metus porttitor
22 | rhoncus. Pellentesque id quam neque, eget molestie arcu. Integer in elit vel
23 | neque viverra ultricies in eget massa. Nam ut convallis est. Pellentesque eros
24 | eros, sodales non vehicula et, tincidunt ut odio. Cras suscipit ultrices metus
25 | sit amet molestie. Fusce enim leo, vehicula sed sodales quis, adipiscing at
26 | ipsum.
27 |
28 | Nunc tempor dignissim enim, sed tincidunt eros bibendum quis. Curabitur et dolor
29 | augue, id laoreet mi. Nulla cursus felis id dui vehicula vitae ornare lorem
30 | blandit. Cras eget dui nec odio volutpat pharetra. Fusce hendrerit justo justo,
31 | vel imperdiet enim. Vivamus elit risus, interdum ultrices accumsan eleifend,
32 | vestibulum vitae sapien. Integer bibendum ullamcorper tristique. Nulla quis odio
33 | lectus, quis eleifend augue. Integer a ligula mauris. Aenean et tempus tortor.
34 | Quisque at tortor mi. Vivamus accumsan feugiat est a blandit. Sed vitae enim ut
35 | dolor semper sodales. Duis tristique, ante et placerat elementum, nulla tellus
36 | pellentesque sapien, quis posuere velit mi eget nulla. Sed vestibulum nunc non
37 | est porttitor ut rutrum nibh semper. Pellentesque habitant morbi tristique
38 | senectus et netus et malesuada fames ac turpis egestas.
39 |
40 | Nulla adipiscing ultricies lobortis. Vivamus iaculis nisl vitae tellus laoreet
41 | vitae aliquet lacus mollis. Phasellus ut lacus urna, sed sagittis ante. Etiam
42 | consectetur pretium nisl sed dignissim. Pellentesque convallis, nisl eget
43 | commodo mollis, sem magna consequat arcu, sed pretium ipsum arcu sit amet neque.
44 | Aliquam erat volutpat. Morbi sed mi sed urna vestibulum placerat vitae vel
45 | metus. Fusce ac ante at justo pharetra vehicula. Vivamus vel tortor eget augue
46 | aliquet aliquet at vel odio. Nunc venenatis, magna quis facilisis fringilla,
47 | augue tellus varius neque, in vulputate est eros ut tortor. Duis lorem neque,
48 | aliquam congue posuere id, condimentum non dui. Phasellus ut dui massa,
49 | porttitor suscipit augue. Praesent quis tellus quam, vel volutpat metus. Vivamus
50 | enim est, aliquam in imperdiet et, sagittis eu ligula. Vestibulum hendrerit
51 | placerat orci et aliquet. Cras pharetra, dolor placerat lobortis tempor, metus
52 | odio cursus ligula, et posuere lacus ligula quis dui.
53 |
54 | Donec a lectus eu nibh malesuada aliquam. Proin at metus quam, et tincidunt leo.
55 | Quisque lacus justo, scelerisque sodales pulvinar sed, dignissim ut sapien.
56 | Vivamus diam felis, adipiscing sollicitudin ultricies id, accumsan ac felis. In
57 | eu posuere ligula. Suspendisse potenti. Donec porttitor dictum dui id vehicula.
58 | Integer ante velit, congue id dictum et, adipiscing a tortor.
59 |
--------------------------------------------------------------------------------
/doc/tmp/site.hs:
--------------------------------------------------------------------------------
1 | --------------------------------------------------------------------------------
2 | {-# LANGUAGE OverloadedStrings #-}
3 | import Data.Monoid (mappend)
4 | import Hakyll
5 |
6 |
7 | --------------------------------------------------------------------------------
8 | main :: IO ()
9 | main = hakyll $ do
10 | match "images/*" $ do
11 | route idRoute
12 | compile copyFileCompiler
13 |
14 | match "css/*" $ do
15 | route idRoute
16 | compile compressCssCompiler
17 |
18 | match (fromList ["about.rst", "contact.markdown"]) $ do
19 | route $ setExtension "html"
20 | compile $ pandocCompiler
21 | >>= loadAndApplyTemplate "templates/default.html" defaultContext
22 | >>= relativizeUrls
23 |
24 | match "posts/*" $ do
25 | route $ setExtension "html"
26 | compile $ pandocCompiler
27 | >>= loadAndApplyTemplate "templates/post.html" postCtx
28 | >>= loadAndApplyTemplate "templates/default.html" postCtx
29 | >>= relativizeUrls
30 |
31 | create ["archive.html"] $ do
32 | route idRoute
33 | compile $ do
34 | posts <- recentFirst =<< loadAll "posts/*"
35 | let archiveCtx =
36 | listField "posts" postCtx (return posts) `mappend`
37 | constField "title" "Archives" `mappend`
38 | defaultContext
39 |
40 | makeItem ""
41 | >>= loadAndApplyTemplate "templates/archive.html" archiveCtx
42 | >>= loadAndApplyTemplate "templates/default.html" archiveCtx
43 | >>= relativizeUrls
44 |
45 |
46 | match "index.html" $ do
47 | route idRoute
48 | compile $ do
49 | posts <- recentFirst =<< loadAll "posts/*"
50 | let indexCtx =
51 | listField "posts" postCtx (return posts) `mappend`
52 | constField "title" "Home" `mappend`
53 | defaultContext
54 |
55 | getResourceBody
56 | >>= applyAsTemplate indexCtx
57 | >>= loadAndApplyTemplate "templates/default.html" indexCtx
58 | >>= relativizeUrls
59 |
60 | match "templates/*" $ compile templateCompiler
61 |
62 |
63 | --------------------------------------------------------------------------------
64 | postCtx :: Context String
65 | postCtx =
66 | dateField "date" "%B %e, %Y" `mappend`
67 | defaultContext
68 |
--------------------------------------------------------------------------------
/doc/tmp/templates/archive.html:
--------------------------------------------------------------------------------
1 | Here you can find all my previous posts:
2 | $partial("templates/post-list.html")$
3 |
--------------------------------------------------------------------------------
/doc/tmp/templates/default.html:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 | My Hakyll Blog - $title$
8 |
9 |
10 |
11 |
22 |
23 |
24 |
$title$
25 |
26 | $body$
27 |
28 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/doc/tmp/templates/post-list.html:
--------------------------------------------------------------------------------
1 |
2 | $for(posts)$
3 |
4 | $title$ - $date$
5 |
6 | $endfor$
7 |
8 |
--------------------------------------------------------------------------------
/doc/tmp/templates/post.html:
--------------------------------------------------------------------------------
1 |
2 | Posted on $date$
3 | $if(author)$
4 | by $author$
5 | $endif$
6 |
7 |
8 | $body$
9 |
--------------------------------------------------------------------------------
/doc/tutorial/1-function-plots/1-4-basic-interaction.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Radian Tutorial -- 1.4. Basic interaction
4 | ---
5 |
6 | # 1.4. Basic interaction
7 |
8 | We have just one more ingredient to add before we can make the plot
9 | we're aiming at. That's some very simple interaction. We'll look at
10 | two of Radian's interaction features here, zooming and plot visibility
11 | switching.
12 |
13 |
14 | ## Zooming
15 |
16 | Sometimes we want to be able to zoom into detail on a plot. At the
17 | moment, Radian only supports zooming in the *x*-direction, but it's
18 | very easy to set up -- just add a `zoom-x` attribute to the ``
19 | directive. The result is a double plot, with a "focus" area above a
20 | "context" area. You can drag in the context area to select a region
21 | to view in the focus plot, and you can then drag that focussed area
22 | around or resize it. To go back to the full view, just click in the
23 | context view outside the focused region. For the `zoom-x` attribute,
24 | you can either supply a fraction of the vertical height of the plot to
25 | be used for the context area, or you can just let the fraction default
26 | to 0.2.
27 |
28 |
29 |
30 | ``` html
31 |
32 |
33 |
34 | ```
35 |
36 |
37 |
38 |
39 |
40 |
41 | ## Visibility switching
42 |
43 | If we have multiple traces on the same plot, sometimes we may want to
44 | switch traces on and off to make it easier to see what's going on. To
45 | do this in Radian, add the `legend-switches` attribute to the ``
46 | directive, and provide a label for each switchable plot with a `label`
47 | attribute:
48 |
49 |
50 |
51 | ``` html
52 |
53 |
54 |
55 |
57 |
58 | ```
59 |
60 |
61 |
62 |
63 |
65 |
66 |
67 |
68 |
69 |
70 | « Prev section
71 |
72 |
73 | Next section »
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/doc/tutorial/1-function-plots/1-5-putting-it-together.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Radian Tutorial -- 1.5. Putting it together
4 | ---
5 |
6 | # 1.5. Putting it together
7 |
8 | We now know enough to make this plot:
9 |
10 |
11 |
19 |
20 | We'll do it step by step. Make a copy of the `template.html` file in
21 | the tutorial directory and give it a try yourself.
22 |
23 |
24 | #### 1. Plot setup
25 |
26 | First, we need to set up the `` directive. The plot is 300
27 | pixels tall and about twice as long as it is high.
28 |
29 |
30 | **Exercise**
31 |
32 | Set up the `
` directive in your HTML file with the right
33 | dimensions.
34 |
35 |
36 |
37 |
38 | #### 2. Drawing the curves
39 |
40 | The *x* coordinate values run from 0 up to 10, and we can share those
41 | coordinate values between the two curves we want to plot.
42 |
43 |
44 | **Exercise**
45 |
46 | Add a suitable `x` attribute to the `
` directive using the `seq`
47 | function.
48 |
49 |
50 |
51 |
52 | The equations of the two curves are *y = 30 - 3x* and *y = 12 - 3x +
53 | x2 /2*.
54 |
55 |
56 | **Exercise**
57 |
58 | Add suitable `
` directives inside the `` directive to
59 | plot these curves.
60 |
61 |
62 |
63 | At this point, it should be possible to render the plot. Give it a
64 | go. If it doesn't work, you can sometimes get some idea of what's
65 | wrong by looking in the JavaScript developer console in your browser
66 | (in Chrome, you switch this on and off with by pressing
67 | *Ctrl-Shift-J*). In particular, if you make a mistake in a Radian
68 | expression, you'll see error messages from a function called
69 | `radianEval`, the JavaScript function that processes Radian
70 | expressions.
71 |
72 |
73 |
74 | #### 3. Styling
75 |
76 | We need to make the lines thicker, and we need to set their colours.
77 | We also need to set the axis labels.
78 |
79 |
80 | **Exercise**
81 |
82 | 1. Make the stroke width for both lines 2 pixels, make the straight
83 | line blue and the parabola red.
84 |
85 | 2. Set the axis labels to "X" and "Y".
86 |
87 |
88 |
89 |
90 | One thing we've not talked about yet is control over plotting ranges.
91 | By default, Radian makes the coordinate ranges in the *x* and *y*
92 | directions large enough to contain all of your plot data, i.e. all the
93 | values you include in any `x` and `y` attributes in plot directives
94 | within a `` directive. Sometimes you want to be able to
95 | override these ranges, either to exclude some data or to position your
96 | plot more advantageously. Here, we'd like the *y* values to run from
97 | zero upwards. We can do this by adding a `range-y=0` attribute to the
98 | `` directive.
99 |
100 |
101 | **Exercise**
102 |
103 | Add a `range-y=0` attribute to your `
` directive and look at
104 | what difference it makes to the plot.
105 |
106 |
107 |
108 |
109 | #### 4. Interaction
110 |
111 | The final aspect of the plot we need to deal with is the visibility
112 | switching of the curves. We can do this by adding a `legend-switches`
113 | attribute to the `` directive and adding `label` attributes to
114 | each of the `` directives to give labels for the curves.
115 |
116 |
117 | **Exercise**
118 |
119 | Set up the visibility switching for the curves in this plot.
120 |
121 |
122 |
123 |
124 | ## Conclusion
125 |
126 | You should have ended up with something like this:
127 |
128 | ``` html
129 |
132 |
133 |
134 |
135 | ```
136 |
137 | This is about all you need to know to be able to produce simple plots
138 | of functions using Radian. In the next section, we'll go on to look
139 | at producing plots from data, and producing different types of plots
140 | (scatter plots, bar charts and so on).
141 |
142 |
143 |
144 | « Prev section
145 |
146 |
147 | Next section »
148 |
149 |
150 |
151 |
--------------------------------------------------------------------------------
/doc/tutorial/1-function-plots/index.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Radian Tutorial -- 1. Function plots
4 | ---
5 |
6 | # 1. Function plots
7 |
8 | Here's the plot we're going to be working towards producing in this
9 | part of the tutorial:
10 |
11 |
12 |
20 |
21 | It's a plot with two curves (one a straight line, one a parabola)
22 | defined by functions *y = f(x)*. There is some simple styling (line
23 | width and colour) and a little bit of interactivity (you can click on
24 | the coloured blobs in the legend to toggle the visibility of the two
25 | curves).
26 |
27 | ### Setup
28 |
29 | Before we get started for real, you will need to set up the tutorial
30 | materials. These are
31 | [available on GitHub](https://github.com/openbrainsrc/Radian-tutorial).
32 | The easiest way to get the tutorial materials is to clone the GitHub
33 | repository. To do this, in a terminal window, do:
34 |
35 | ```
36 | git clone git@github.com:openbrainsrc/Radian-tutorial.git
37 | ```
38 |
39 | To serve the tutorial pages, you can either use a pre-existing web
40 | server, setting it up to serve the pages in the `Radian-tutorial`
41 | directory, or you can use the `web-server.js` script provided in the
42 | `Radian-tutorial` directory. This script uses Node.js, and is
43 | identical to the web server script provided with the Angular seed
44 | application.
45 |
46 | Once you have a suitable web server running, check that everything is
47 | working by pointing your browser at the `index.html` page in the
48 | `Radian-tutorial` directory. You should see some text saying "Content
49 | goes here!" and a rudimentary plot.
50 |
51 | ### Starting the tutorial
52 |
53 | Once page serving appears to be working, check out the first section
54 | of the tutorial by going to the `Radian-tutorial` directory in a
55 | terminal and doing:
56 |
57 | ```
58 | git checkout -f part-1
59 | ```
60 |
61 | We'll do something similar at the beginning of each part of the
62 | tutorial to get out the files needed for that part. *This command
63 | will delete any local changes you have made in the `Radian-tutorial`
64 | directory.*
65 |
66 | As well as the content for each tutorial section, the
67 | `Radian-tutorial` directory contains a `template.html` file that you
68 | can copy to create new pages -- this contains all the JavaScript setup
69 | required to be able to embed Radian plots in a page.
70 |
71 |
72 |
73 | Next section »
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/doc/tutorial/2-data-plots/2-2-scatter-plots.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Radian Tutorial -- 2.2. Scatter plots
4 | ---
5 |
6 | # 2.2. Scatter plots
7 |
8 | So far, we have looked only at line plots. In this section, we branch
9 | out a bit and look at scatter plots. The Radian directives for all
10 | plot types work more or less the same way, so we'll be able to get
11 | going very quickly based on the knowledge acquired using the ``
12 | directive for line plots.
13 |
14 |
15 | ## The `` directive
16 |
17 | In Radian, scatter plots are generated using the ``
18 | directive. The coordinates of points to be plotted are specified
19 | using `x` and `y` attributes, as for the `` directive. The
20 | primary difference between using `` and `` is in the
21 | range of paint attributes that can be given for the markers displayed
22 | at each of the plot points. Markers have a shape and size, and can be
23 | filled and stroked (so have colours and opacities for both as well as
24 | a stroke width).
25 |
26 |
27 |
28 | ``` html
29 |
30 |
32 |
33 |
34 |
36 |
37 |
38 |
39 |
40 |
41 | ```
42 |
43 |
44 |
46 |
47 |
48 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 | Marker type is given using the `marker` attribute. Marker size is set
58 | by the `marker-size` attribute, which gives a measure of the *area* in
59 | square pixels of the marker. Colours are set with the `stroke` and
60 | `fill` attributes.
61 |
62 | As a more advanced example of what can be done, the following example
63 | assigns marker type and fill colour based on the discrete values of
64 | the `species` field in our data. This uses Radian *palettes*, a topic
65 | that we won't discuss much, but you can see more or less what to do
66 | (all the details are in the
67 | [reference manual](/ref-manual/03-palettes-and-interpolators.html)).
68 |
69 |
70 |
71 | ``` html
72 |
73 |
76 |
77 |
78 |
79 | "I. setosa" circle
80 | "I. versicolor" square
81 | "I. virginica" diamond
82 |
83 |
84 |
85 | "I. setosa" red
86 | "I. versicolor" green
87 | "I. virginica" blue
88 |
89 |
90 |
92 |
93 |
94 |
95 |
96 |
97 | ```
98 |
99 |
100 | \"I. setosa\" circle; \"I. versicolor\" square; \"I. virginica\" diamond
101 |
102 |
103 |
104 | \"I. setosa\" red; \"I. versicolor\" green; \"I. virginica\" blue
105 |
106 |
107 |
108 |
111 |
112 |
113 |
114 |
115 |
116 | **Exercise**
117 |
118 | Generate some more scatter plots using the `iris.csv` data set.
119 | Experiment with marker type, size and stroke and fill attributes. You
120 | can try playing with palettes for colours and marker type following
121 | Example 7 above.
122 |
123 |
124 |
125 |
126 |
127 |
128 | « Prev section
129 |
130 |
131 | Next section »
132 |
133 |
134 |
135 |
--------------------------------------------------------------------------------
/doc/tutorial/2-data-plots/2-4-plot-layout.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Radian Tutorial -- 2.4. Plot layout
4 | ---
5 |
6 | # 2.4. Plot layout
7 |
8 | It's very common to want to produce multi-panel plots, with views of
9 | different data (or different views of the same data) lined up together
10 | for comparison. Radian contains three layout directives to allow us
11 | to do this sort of thing.
12 |
13 |
14 | ## Tree layout
15 |
16 | Radian plot layout uses the ``, `` and
17 | `` directives, plus an extra attribute called
18 | `layout-share` that can be applied to plot elements within these
19 | directives. (In fact, `` is just a special case of uses of
20 | `` and `` provided for convenience.)
21 |
22 | As you might expect from the names, `` lays things out in a
23 | row, `` in a column and `` in a grid. The
24 | important feature of these directives is that they can each contain
25 | either `` directives (defining single plots) or other layout
26 | directives. You can thus define a "layout tree" to arrange plots in a
27 | very flexible way (this sort of layout is sometimes called VBox/HBox
28 | layout).
29 |
30 | Here's a quick example to show how this works:
31 |
32 |
33 |
34 | ``` html
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | ```
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 | This plot has a column of three small plots next to a single large
72 | plot. Note how the plot size is defined on the outermost plot layout
73 | directive. This outermost directive manages the allocation of space
74 | to all the inner layout directives and plots. You can also see how
75 | the `layout-share` attribute is used to control the relative amounts
76 | of space allocated to the elements contained in the outermost
77 | `` directive: the widths of the `` and the large
78 | `` are in the ratio 1:3, as specified by their `layout-share`
79 | values. You can also see how attributes are propagated down through
80 | the tree of directives -- we specify *x* values on the outermost
81 | `` directive and these are used by all the inner plots.
82 |
83 | The different plot elements within this type of layout tree are all
84 | rendered independently once their sizes and locations within the
85 | containing SVG image are determined -- no matter how many layers of
86 | `` and `` you use, the plots are all rendered into
87 | a single SVG image.
88 |
89 |
90 | ## Grid layout
91 |
92 | As well as `` and ``, which allow the construction
93 | of arbitrary hierarchical layouts, the `` directive
94 | performs simple grid-based layout -- specify the number of rows and
95 | columns you want (using the `rows` and `cols` attributes), put a
96 | suitable number of `` directives inside the ``
97 | directive, and the plots will be laid out in rows in the order you
98 | give them:
99 |
100 |
101 |
102 | ``` html
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 | ```
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 | « Prev section
139 |
140 |
141 | Next section »
142 |
143 |
144 |
145 |
--------------------------------------------------------------------------------
/doc/tutorial/2-data-plots/index.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Radian Tutorial -- 2. Data plots
4 | ---
5 |
6 | # 2. Data plots
7 |
8 | Here's the plot we're going to be working towards producing in this
9 | part of the tutorial:
10 |
11 |
12 |
13 |
14 |
15 |
17 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | The left hand plot shows a daily time series of temperature and
35 | monthly aggregate rainfall (calculated from a daily time series) from
36 | a weather station in Victoria, Canada (data available
37 | [here](http://www.victoriaweather.ca/)) while the right hand panel
38 | shows a scatter plot of daily rainfall versus temperature from the
39 | same data.
40 |
41 | ### Setup
42 |
43 | As for Part 1, we need to check out the appropriate contents in the
44 | `Radian-tutorial` directory. *Remember that the following command
45 | will delete any local changes you have made in the `Radian-tutorial`
46 | directory, so if you have example plots from Part 1 you want to keep,
47 | copy them somewhere else.* To switch to the tutorial contents for
48 | Part 2, do the following in the `Radian-tutorial` directory:
49 |
50 | ```
51 | git checkout -f part-2
52 | ```
53 |
54 |
55 |
56 | « Prev section
57 |
58 |
59 | Next section »
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/doc/tutorial/3-interactive-plots/index.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Radian Tutorial -- 3. Interactive plots
4 | ---
5 |
6 | # 3. Interactive plots
7 |
8 | In this section, we're going to explore a few of the possibilities
9 | offered by Radian's integration with the AngularJS framework. This
10 | section of the tutorial is necessarily going to be a little more
11 | technical than the previous two -- there are a lot of things you can
12 | do with only a minimal amount of extra work, but we also want to
13 | demonstrate some slightly more complicated things, things that will
14 | require us to write a little bit of JavaScript code. However, even
15 | though we'll end up with some more complex stuff, most of the examples
16 | we're going to look at will be things that you can easily take and
17 | modify for your own purposes, without needing to know lots of
18 | JavaScript to do it.
19 |
20 | The plot that we're going to be working towards producing in this part
21 | of the tutorial is a little interactive stock price viewer. Below,
22 | you can select stocks from the menu, click "Add" to add them to the
23 | graph view (which appears once you've selected a stock), and you can
24 | then select the variable you want to view from the second drop-down
25 | list, control the visibility of different traces using the legend
26 | (which only appears when you have two or more stocks plotted), pan and
27 | zoom using the context panel below the main plot, and remove stock
28 | traces using the buttons that appear below the plot[^1].
29 |
30 | This example requires some features of Radian that we've not yet
31 | covered, and it also requires about 10 lines of extra JavaScript to
32 | set some things up.
33 |
34 |
35 |
36 |
49 |
50 |
53 |
56 |
57 |
58 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 | {{s}}
70 |
71 |
72 |
73 |
74 |
75 | ### Setup
76 |
77 | As for Parts 1 and 2, we need to check out the appropriate contents in
78 | the `Radian-tutorial` directory. *Remember that the following command
79 | will delete any local changes you have made in the `Radian-tutorial`
80 | directory, so if you have example plots from Part 1 or 2 you want to
81 | keep, copy them somewhere else.* To switch to the tutorial contents
82 | for Part 3, do the following in the `Radian-tutorial` directory:
83 |
84 | ```
85 | git checkout -f part-3
86 | ```
87 |
88 |
89 |
90 | « Prev section
91 |
92 |
93 | Next section »
94 |
95 |
96 |
97 |
98 | [^1]: Note that the prices shown here are just some canned data
99 | downloaded from Yahoo Finance. In order to have live prices,
100 | we'd need to deal with cross-domain request issues: as a
101 | security measure, a piece of JavaScript served from, for
102 | example, the `http://openbrainsrc.github.io` domain, isn't
103 | allowed to make HTTP requests to other domains
104 | (e.g. `http://ichart.finance.yahoo.com`). It's an easy problem
105 | to fix if you're writing a real web application -- you just
106 | provide a proxy service from a server in your domain to make the
107 | requests for you -- but it's not something we want to deal with
108 | here, so canned data it is.
109 |
--------------------------------------------------------------------------------
/doc/tutorial/index.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Radian Tutorial
4 | ---
5 |
6 | # Tutorial
7 |
8 | This tutorial covers many of the more straightforward uses of Radian.
9 | Each of the three sections works towards producing increasingly
10 | complex plots, with a number of sections describing the features of
11 | Radian that we're going to use (often with some scattered exercises
12 | for you to look at), wrapped up by a "Putting it together" section
13 | where you will be guided through constructing a plot using a number of
14 | Radian's features.
15 |
16 | Radian is very much an open-ended tool, and what you can do with it is
17 | really limited only by your imagination. We'll cover only a small
18 | fraction of what you can do in this tutorial, but it should be enough
19 | to get you started.
20 |
21 | ## [1. Function plots](1-function-plots)
22 |
23 | Uses simple function-based plots to introduce Radian: covers plot
24 | setup, line plots, Radian expressions and basic plot styling.
25 |
26 | ###### [1.1. Plot setup](1-function-plots/1-1-plot-setup.html)
27 | ###### [1.2. Line plots](1-function-plots/1-2-line-plots.html)
28 | ###### [1.3. Radian expressions](1-function-plots/1-3-radian-expressions.html)
29 | ###### [1.4. Basic interaction](1-function-plots/1-4-basic-interaction.html)
30 | ###### [1.5. Putting it together](1-function-plots/1-5-putting-it-together.html)
31 |
32 | ## [2. Data plots](2-data-plots)
33 |
34 | Plots using data: covers data access, scatter plots, bar charts and
35 | histograms, more complex Radian expressions and plot layout.
36 |
37 | ###### [2.1. Accessing plot data](2-data-plots/2-1-accessing-plot-data.html)
38 | ###### [2.2. Scatter plots](2-data-plots/2-2-scatter-plots.html)
39 | ###### [2.3. Bar charts](2-data-plots/2-3-bar-charts.html)
40 | ###### [2.4. Plot layout](2-data-plots/2-4-plot-layout.html)
41 | ###### [2.5. Putting it together](2-data-plots/2-5-putting-it-together.html)
42 |
43 | ## [3. Interactive plots](3-interactive-plots)
44 |
45 | Interactivity using Angular: builds a simple data viewer for some
46 | historical financial data.
47 |
48 | ###### [3.1. Angular data binding](3-interactive-plots/3-1-data-binding.html)
49 | ###### [3.2. Building the example](3-interactive-plots/3-2-building-the-example.html)
50 |
--------------------------------------------------------------------------------
/examples/css/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/examples/css/.gitignore
--------------------------------------------------------------------------------
/examples/css/app.css:
--------------------------------------------------------------------------------
1 | /* app css stylesheet */
2 |
3 | .menu {
4 | list-style: none;
5 | border-bottom: 0.1em solid black;
6 | margin-bottom: 2em;
7 | padding: 0 0 0.5em;
8 | }
9 |
10 | .menu:before {
11 | content: "[";
12 | }
13 |
14 | .menu:after {
15 | content: "]";
16 | }
17 |
18 | .menu > li {
19 | display: inline;
20 | }
21 |
22 | .menu > li:before {
23 | content: "|";
24 | padding-right: 0.3em;
25 | }
26 |
27 | .menu > li:nth-child(1):before {
28 | content: "";
29 | padding: 0;
30 | }
31 |
32 | plot { height: 300px; width: 500px; }
33 |
34 | pre.include-source { background: ghostwhite; margin-top: 20px; }
35 |
--------------------------------------------------------------------------------
/examples/css/hljs.css:
--------------------------------------------------------------------------------
1 | pre code{display:block;padding:.5em;color:black;background:ghostwhite}pre .comment,pre .template_comment,pre .diff .header,pre .javadoc{color:#998;font-style:italic}pre .keyword,pre .css .rule .keyword,pre .winutils,pre .javascript .title,pre .lisp .title,pre .subst,pre .request,pre .status{color:black;font-weight:bold}pre .number,pre .hexcolor{color:#40a070}pre .string,pre .tag .value,pre .phpdoc,pre .tex .formula{color:#d14}pre .title,pre .id{color:#900;font-weight:bold}pre .javascript .title,pre .lisp .title,pre .subst{font-weight:normal}pre .class .title,pre .haskell .label,pre .vhdl .literal,pre .tex .command{color:#458;font-weight:bold}pre .tag,pre .tag .title,pre .rules .property,pre .django .tag .keyword{color:navy;font-weight:normal}pre .attribute,pre .variable,pre .instancevar,pre .lisp .body{color:teal}pre .regexp{color:#009926}pre .class{color:#458;font-weight:bold}pre .symbol,pre .ruby .symbol .string,pre .ruby .symbol .keyword,pre .ruby .symbol .keymethods,pre .lisp .keyword,pre .tex .special,pre .input_number{color:#990073}pre .builtin,pre .built_in,pre .lisp .title{color:#0086b3}pre .preprocessor,pre .pi,pre .doctype,pre .shebang,pre .cdata{color:#999;font-weight:bold}pre .deletion{background:#fdd}pre .addition{background:#dfd}pre .diff .change{background:#0086b3}pre .chunk{color:#aaa}pre .tex .formula{opacity:.5}
--------------------------------------------------------------------------------
/examples/data/mockJSON.json:
--------------------------------------------------------------------------------
1 | {
2 | "fathers" : [
3 | {
4 | "id" : 0,
5 | "married" : 20,
6 | "name" : "George Lopez",
7 | "sons" : null,
8 | "daughters" : [
9 | {
10 | "age" : 26,
11 | "name" : "Kimberly"
12 | }
13 | ]
14 | },
15 | {
16 | "id" : 1,
17 | "married" : 15,
18 | "name" : "Anthony Davis",
19 | "sons" : null,
20 | "daughters" : [
21 | {
22 | "age" : 26,
23 | "name" : "Angela"
24 | }
25 | ]
26 | },
27 | {
28 | "id" : 2,
29 | "married" : 17,
30 | "name" : "Anthony Perez",
31 | "sons" : null,
32 | "daughters" : [
33 | {
34 | "age" : 26,
35 | "name" : "Angela"
36 | }
37 | ]
38 | },
39 | {
40 | "id" : 3,
41 | "married" : 30,
42 | "name" : "Anthony Clark",
43 | "sons" : null,
44 | "daughters" : [
45 | {
46 | "age" : 3,
47 | "name" : "Betty"
48 | }
49 | ]
50 | },
51 | {
52 | "id" : 4,
53 | "married" : 40,
54 | "name" : "Scott Smith",
55 | "sons" : null,
56 | "daughters" : [
57 | {
58 | "age" : 29,
59 | "name" : "Linda"
60 | }
61 | ]
62 | }
63 | ]
64 | }
--------------------------------------------------------------------------------
/examples/eg/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/examples/eg/.gitignore
--------------------------------------------------------------------------------
/examples/eg/12.html:
--------------------------------------------------------------------------------
1 | Example 12 (functional plots)
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/examples/eg/13.html:
--------------------------------------------------------------------------------
1 | Example 13 (functional plots)
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/examples/eg/14.html:
--------------------------------------------------------------------------------
1 | Example 14 (functional plots, exponentiation operator, expression
2 | vectorisation)
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/examples/eg/15.html:
--------------------------------------------------------------------------------
1 | Example 15 (data binding)
2 |
3 |
4 | Mean
5 |
6 | Standard deviation
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/examples/eg/16.html:
--------------------------------------------------------------------------------
1 | Example 16 (<plot-options> directive)
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/examples/eg/19.html:
--------------------------------------------------------------------------------
1 | Example 19 (log axes)
2 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/examples/eg/21.html:
--------------------------------------------------------------------------------
1 | Example 21 (bar chart)
2 |
3 |
4 |
5 |
6 |
7 |
8 | 1, 2
9 | 2, 4
10 | 3, 8
11 | 4, 16
12 | 5, 32
13 | 6, 48
14 | 7, 24
15 | 8, 12
16 | 9, 6
17 | 10, 3
18 |
19 |
--------------------------------------------------------------------------------
/examples/eg/22.html:
--------------------------------------------------------------------------------
1 | Example 22 (test)
2 |
3 | [
4 | {"x": 0,"y":0.0821196},{"x": 1,"y":0.0802639},{"x": 2,"y":0.0797536},{"x": 3,"y":0.0791291},{"x": 4,"y":0.0826573},{"x": 5,"y":0.0919378},{"x": 6,"y":0.0818375},{"x": 7,"y":0.0810162}
5 |
6 |
7 | ]
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/examples/eg/24.html:
--------------------------------------------------------------------------------
1 | Tom's data example
2 |
3 | [
4 | [{"x": 35.1,"y":0.31269841999999937},{"x": 1.5,"y":-0.8704986999999997},{"x": 35.2,"y":-0.8962801600000008},{"x": 4.5,"y":-0.13985609999999982},{"x": 10.1,"y":0.15734341999999968},{"x": 80.4,"y":-0.9545983200000006},{"x": 5.2,"y":-0.10270615999999988},{"x": 60.1,"y":-0.13194657999999926},{"x": 70.1,"y":-0.029804579999998637},{"x": 40.6,"y":0.5188765200000001}],[{"x": 35.1,"y":1.1580576999999996},{"x": 1.5,"y":0.34739050000000016},{"x": 35.2,"y":-0.0520296000000009},{"x": 4.5,"y":1.0447715},{"x": 10.1,"y":1.2798827},{"x": 80.4,"y":-0.6114892000000012},{"x": 5.2,"y":1.0741604000000002},{"x": 60.1,"y":0.4362326999999988},{"x": 70.1,"y":0.4275026999999998},{"x": 40.6,"y":1.3032561999999999}],[{"x": 35.1,"y":0.3934328200000001},{"x": 1.5,"y":-0.6803626999999999},{"x": 35.2,"y":-0.8158713600000009},{"x": 4.5,"y":0.04051190000000027},{"x": 10.1,"y":0.3194778199999999},{"x": 80.4,"y":-1.0213607200000006},{"x": 5.2,"y":0.07538263999999995},{"x": 60.1,"y":-0.13261218000000063},{"x": 70.1,"y":-0.06303018000000016},{"x": 40.6,"y":0.5817029199999997}],[{"x": 35.1,"y":0.5646982399999994},{"x": 1.5,"y":-0.7706464},{"x": 35.2,"y":-0.6438275200000003},{"x": 4.5,"y":-0.026419199999999865},{"x": 10.1,"y":0.2961382399999999},{"x": 80.4,"y":-0.49747104000000064},{"x": 5.2,"y":0.013900480000000215},{"x": 60.1,"y":0.23325823999999962},{"x": 70.1,"y":0.3806822400000005},{"x": 40.6,"y":0.7957814399999998}],[{"x": 35.1,"y":0.64571808},{"x": 1.5,"y":-0.8797487999999998},{"x": 35.2,"y":-0.5622418400000004},{"x": 4.5,"y":-0.11854640000000005},{"x": 10.1,"y":0.23569808000000014},{"x": 80.4,"y":-0.16012568000000016},{"x": 5.2,"y":-0.0742658399999998},{"x": 60.1,"y":0.4557380799999997},{"x": 70.1,"y":0.6597460799999997},{"x": 40.6,"y":0.9079224799999999}],[{"x": 35.1,"y":0.08638890000000021},{"x": 1.5,"y":-0.5835615000000001},{"x": 35.2,"y":-1.1241172000000006},{"x": 4.5,"y":0.10125550000000016},{"x": 10.1,"y":0.31291389999999986},{"x": 80.4,"y":-1.8728744000000024},{"x": 5.2,"y":0.1277128000000003},{"x": 60.1,"y":-0.7401361000000009},{"x": 70.1,"y":-0.7907460999999998},{"x": 40.6,"y":0.20855339999999956}],[{"x": 35.1,"y":0.7372296599999997},{"x": 1.5,"y":-0.6399200999999999},{"x": 35.2,"y":-0.4711716800000012},{"x": 4.5,"y":0.10803969999999996},{"x": 10.1,"y":0.43756466000000005},{"x": 80.4,"y":-0.2685773600000001},{"x": 5.2,"y":0.14923032000000003},{"x": 60.1,"y":0.4368946599999992},{"x": 70.1,"y":0.5967606599999993},{"x": 40.6,"y":0.9751559599999995}],[{"x": 35.1,"y":0.5197555899999999},{"x": 1.5,"y":-0.35185865000000005},{"x": 35.2,"y":-0.6901503200000008},{"x": 4.5,"y":0.3509640500000004},{"x": 10.1,"y":0.5962330900000001},{"x": 80.4,"y":-1.1676216400000001},{"x": 5.2,"y":0.38162268000000044},{"x": 60.1,"y":-0.1567219099999999},{"x": 70.1,"y":-0.14731291000000013},{"x": 40.6,"y":0.6749305400000001}],[{"x": 35.1,"y":0.7463506799999999},{"x": 1.5,"y":-0.1046298000000001},{"x": 35.2,"y":-0.46361664000000147},{"x": 4.5,"y":0.5963506000000001},{"x": 10.1,"y":0.8381806799999998},{"x": 80.4,"y":-0.9688452800000018},{"x": 5.2,"y":0.62657936},{"x": 60.1,"y":0.054520679999999544},{"x": 70.1,"y":0.057788679999999815},{"x": 40.6,"y":0.8981480800000003}],[{"x": 35.1,"y":0.5118304799999995},{"x": 1.5,"y":-0.8901227999999999},{"x": 35.2,"y":-0.6964970400000006},{"x": 4.5,"y":-0.13994839999999975},{"x": 10.1,"y":0.19371048000000046},{"x": 80.4,"y":-0.4605360800000007},{"x": 5.2,"y":-0.09824103999999956},{"x": 60.1,"y":0.2299504799999994},{"x": 70.1,"y":0.39719848000000013},{"x": 40.6,"y":0.7538168800000005}]
5 | ]
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/examples/eg/26.html:
--------------------------------------------------------------------------------
1 | Example 26 (points plot with discrete palette)
2 |
3 |
4 | female #FF7F7F; male #7F7FFF
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 | Tom,35.1,6.3,male,20
15 | Harriet,1.5,2.1,female,10
16 | Antonia,35.2,5.1,female,25
17 | Ada,4.5,3.1,female,12
18 | Foo,10.1,3.9,female,15
19 | Bar,80.4,9.1,female,22
20 | Baz,5.2,3.2,male,13
21 | Jim,60.1,8.1,male,24
22 | Ted,70.1,9.1,male,18
23 | Jerry,40.6,7,male,16
24 |
25 |
--------------------------------------------------------------------------------
/examples/eg/27.html:
--------------------------------------------------------------------------------
1 | Example 27 (points plot with discrete marker palette)
2 |
3 |
4 | female circle; male square
5 |
6 |
7 |
10 |
12 |
13 |
14 |
15 | Tom,35.1,6.3,male,20
16 | Harriet,1.5,2.1,female,10
17 | Antonia,35.2,5.1,female,25
18 | Ada,4.5,3.1,female,12
19 | Foo,10.1,3.9,female,15
20 | Bar,80.4,9.1,female,22
21 | Baz,5.2,3.2,male,13
22 | Jim,60.1,8.1,male,24
23 | Ted,70.1,9.1,male,18
24 | Jerry,40.6,7,male,16
25 |
26 |
--------------------------------------------------------------------------------
/examples/eg/28.html:
--------------------------------------------------------------------------------
1 | Example 28 (more on palettes)
2 |
3 |
4 | 0 blue; 0.5 grey; 1 red
5 |
6 |
7 |
8 | 0 green; 0.5 yellow; 1 orange
9 |
10 |
11 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/examples/eg/29.html:
--------------------------------------------------------------------------------
1 | Example 29 (absolute palettes)
2 |
3 |
4 | -1 blue; 0 grey; 1 red
5 |
6 |
7 |
8 | -1 green; 0 yellow; 1 orange
9 |
10 |
11 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/examples/eg/30.html:
--------------------------------------------------------------------------------
1 | Example 30 (absolute palettes)
2 |
3 | This is kind of ugly. It would be nice to do some sort of
4 | interpolation to split the path segments at the palette
5 | boundaries...
6 |
7 |
8 | 0 #003300
9 | 100 #00B34D
10 | 600 #E6FF00
11 | 1200 #994D00
12 | 1800 #E6E6FF
13 | 5000 #FFFFFF
14 |
15 |
16 |
17 |
19 |
20 |
21 |
22 |
23 |
24 | 10 1327
25 | 10.017 1177
26 | 10.033 1039
27 | 10.05 1378
28 | 10.067 1787
29 | 10.083 1847
30 | 10.1 1625
31 | 10.117 1424
32 | 10.133 1745
33 | 10.15 1429
34 | 10.167 1814
35 | 10.183 2036
36 | 10.2 1941
37 | 10.217 1713
38 | 10.233 1429
39 | 10.25 1499
40 | 10.267 1758
41 | 10.283 1960
42 | 10.3 2267
43 | 10.317 2069
44 | 10.333 1864
45 | 10.35 2126
46 | 10.367 2072
47 | 10.383 1814
48 | 10.4 1685
49 | 10.417 1505
50 | 10.433 1431
51 | 10.45 1261
52 | 10.467 1182
53 | 10.483 1101
54 | 10.5 1267
55 | 10.517 1652
56 | 10.533 2012
57 | 10.55 1810
58 | 10.567 1632
59 | 10.583 1492
60 | 10.6 1442
61 | 10.617 1713
62 | 10.633 1835
63 | 10.65 1915
64 | 10.667 2077
65 | 10.683 2125
66 | 10.7 2034
67 | 10.717 1887
68 | 10.733 1697
69 | 10.75 2029
70 | 10.767 1983
71 | 10.783 1774
72 | 10.8 1524
73 | 10.817 1378
74 | 10.833 930
75 | 10.85 905
76 | 10.867 1251
77 | 10.883 1335
78 | 10.9 1148
79 | 10.917 1040
80 | 10.933 987
81 | 10.95 885
82 | 10.967 846
83 | 10.983 840
84 | 11 861
85 | 11.017 866
86 | 11.033 791
87 | 11.05 683
88 | 11.067 659
89 | 11.083 665
90 | 11.1 641
91 | 11.117 627
92 | 11.133 676
93 | 11.15 848
94 | 11.167 1104
95 | 11.183 1166
96 | 11.2 1101
97 | 11.217 1376
98 | 11.233 1381
99 | 11.25 1398
100 | 11.267 1647
101 | 11.283 1567
102 | 11.3 2093
103 | 11.317 2296
104 | 11.333 2147
105 | 11.35 1999
106 | 11.367 1578
107 | 11.383 1519
108 | 11.4 1307
109 | 11.417 1110
110 | 11.433 1034
111 | 11.45 934
112 | 11.467 801
113 | 11.483 712
114 | 11.5 693
115 | 11.517 699
116 | 11.533 730
117 | 11.55 693
118 | 11.567 604
119 | 11.583 570
120 | 11.6 559
121 | 11.617 567
122 | 11.633 597
123 | 11.65 660
124 | 11.667 872
125 | 11.683 1051
126 | 11.7 1057
127 | 11.717 1107
128 | 11.733 1256
129 | 11.75 1484
130 | 11.767 1748
131 | 11.783 1489
132 | 11.8 1324
133 | 11.817 1455
134 | 11.833 1318
135 | 11.85 926
136 | 11.867 597
137 | 11.883 598
138 | 11.9 919
139 | 11.917 1176
140 | 11.933 1533
141 | 11.95 1891
142 | 11.967 1713
143 | 11.983 2044
144 | 12 1936
145 | 12.017 1993
146 | 12.033 1694
147 | 12.05 1625
148 | 12.067 1931
149 | 12.083 1760
150 | 12.1 2102
151 | 12.117 2201
152 | 12.133 2022
153 | 12.15 1982
154 | 12.167 2230
155 | 12.183 2058
156 | 12.2 1835
157 | 12.217 1715
158 | 12.233 2042
159 | 12.25 1960
160 | 12.267 2018
161 | 12.283 1776
162 | 12.3 1786
163 | 12.317 1675
164 | 12.333 1487
165 | 12.35 1349
166 | 12.367 1355
167 | 12.383 1592
168 | 12.4 1326
169 | 12.417 1158
170 | 12.433 1178
171 | 12.45 1204
172 | 12.467 1279
173 | 12.483 1235
174 | 12.5 1309
175 | 12.517 1348
176 | 12.533 1197
177 | 12.55 1272
178 | 12.567 1177
179 | 12.583 1249
180 | 12.6 1365
181 | 12.617 1234
182 | 12.633 1154
183 | 12.65 1182
184 | 12.667 1317
185 | 12.683 1027
186 | 12.7 1038
187 | 12.717 1017
188 | 12.733 1104
189 | 12.75 1080
190 | 12.767 1004
191 | 12.783 860
192 | 12.8 752
193 | 12.817 838
194 | 12.833 1242
195 | 12.85 1220
196 | 12.867 1167
197 | 12.883 1063
198 | 12.9 1067
199 | 12.917 1127
200 | 12.933 1037
201 | 12.95 1044
202 | 12.967 1008
203 | 12.983 909
204 | 13 864
205 |
206 |
--------------------------------------------------------------------------------
/examples/eg/31.html:
--------------------------------------------------------------------------------
1 | Example 31 (Tom's plot-options example)
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/examples/eg/33.html:
--------------------------------------------------------------------------------
1 | Example 33 (banded palettes)
2 |
3 |
4 | 0 blue; 0.5 red
5 |
6 |
7 |
8 | 0 green; 0.5 orange
9 |
10 |
11 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/examples/eg/34.html:
--------------------------------------------------------------------------------
1 | Example 34 (data access via URL)
2 |
3 |
4 |
5 |
6 |
7 |
8 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/examples/eg/36.html:
--------------------------------------------------------------------------------
1 | Example 36 (compact palette syntax #1)
2 |
3 |
5 |
6 |
7 |
8 |
9 |
11 |
12 |
13 |
14 |
15 |
17 |
18 |
19 |
20 |
21 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/examples/eg/37.html:
--------------------------------------------------------------------------------
1 | Example 37 (compact palette syntax #2)
2 |
3 |
6 |
8 |
9 |
10 |
11 |
12 | Tom,35.1,6.3,male,20
13 | Harriet,1.5,2.1,female,10
14 | Antonia,35.2,5.1,female,25
15 | Ada,4.5,3.1,female,12
16 | Foo,10.1,3.9,female,15
17 | Bar,80.4,9.1,female,22
18 | Baz,5.2,3.2,male,13
19 | Jim,60.1,8.1,male,24
20 | Ted,70.1,9.1,male,18
21 | Jerry,40.6,7,male,16
22 |
23 |
--------------------------------------------------------------------------------
/examples/eg/38.html:
--------------------------------------------------------------------------------
1 | Example 38 (functional plots with palettes)
2 |
3 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/examples/eg/39.html:
--------------------------------------------------------------------------------
1 | Example 39 (Wealth & Health of Nations)
2 |
3 |
4 | Year ({{year}})
5 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
23 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/examples/eg/40.html:
--------------------------------------------------------------------------------
1 | Example 40 (expression plucking)
2 |
3 |
4 | Year ({{year}})
5 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
22 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/examples/eg/41.html:
--------------------------------------------------------------------------------
1 | Example 41 (plot title)
2 |
3 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/examples/eg/42.html:
--------------------------------------------------------------------------------
1 | Example 42 (layout #1)
2 |
3 | Laid out as a row:
4 |
5 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/examples/eg/43.html:
--------------------------------------------------------------------------------
1 |
Example 43 (layout #2)
2 |
3 | Laid out as a column:
4 |
5 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/examples/eg/44.html:
--------------------------------------------------------------------------------
1 |
Example 44 (layout #3)
2 |
3 | Laid out as a 2 × 2 grid (manual):
4 |
5 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/examples/eg/45.html:
--------------------------------------------------------------------------------
1 |
Example 45 (layout #4)
2 |
3 | Differing ratios (simple case):
4 |
5 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/examples/eg/46.html:
--------------------------------------------------------------------------------
1 |
Example 46 (layout #5)
2 |
3 | Differing ratios (more complex case):
4 |
5 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/examples/eg/47.html:
--------------------------------------------------------------------------------
1 |
Example 47 (layout #6)
2 |
3 | Laid out as a 2 × 2 grid (automatic):
4 |
5 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/examples/eg/48.html:
--------------------------------------------------------------------------------
1 |
Example 48 (palettes with ng-repeat)
2 |
3 |
4 | [[body]]
5 |
6 |
7 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/examples/eg/49.html:
--------------------------------------------------------------------------------
1 | Example 49 (font styles)
2 |
3 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/examples/eg/51.html:
--------------------------------------------------------------------------------
1 | Example 51 (bar chart: pixel width bars)
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | 1, 2
13 | 2, 4
14 | 3, 8
15 | 4, 16
16 | 5, 32
17 | 6, 48
18 | 7, 24
19 | 8, 12
20 | 9, 6
21 | 10, 3
22 |
23 |
--------------------------------------------------------------------------------
/examples/eg/52.html:
--------------------------------------------------------------------------------
1 | Example 52 (simple heat map)
2 |
3 |
4 |
6 |
7 |
8 |
9 | -1.358218406,-1.680180041
10 | 1.019182305,0.372856303
11 | -0.046088243,-1.437769350
12 | -1.652131815,1.508971050
13 | 0.880858861,-1.351061092
14 | -0.421879985,0.460046324
15 | -1.775861788,-0.377353402
16 | -0.432299413,-0.544505160
17 | 0.597065895,1.063556238
18 | 1.018733929,0.516806935
19 | 0.693442592,0.818444791
20 | -0.151663918,0.365657710
21 | -0.484266425,1.106456147
22 | -0.563660625,-0.340853294
23 | 1.027548529,1.374454347
24 | 0.018512709,0.497770566
25 | -0.898245409,-0.273169274
26 | 0.401530957,-0.674111550
27 | -1.614098348,-0.004893727
28 | 0.475737412,-0.167170150
29 | 2.896699296,-1.644885154
30 | 0.369390551,-0.363407053
31 | 0.195674450,0.796902390
32 | -0.455183324,0.579003105
33 | -0.840773769,-1.275440408
34 | 0.201168111,-0.145193347
35 | -0.977505714,-1.097588725
36 | -0.157543842,0.931822793
37 | 1.213436851,1.298792286
38 | -0.095741952,2.106816580
39 | -0.111263004,-2.078441409
40 | -1.052447580,0.491906540
41 | -0.223993725,0.596251685
42 | -0.052027197,0.232441049
43 | 1.649155223,1.106705488
44 | 0.034758550,0.089969971
45 | 0.630451636,-2.019073856
46 | 0.317187144,0.159083991
47 | 0.907639885,0.389694700
48 | 3.507502055,0.745939039
49 | 0.241160732,0.863903018
50 | -1.626223538,1.011512303
51 | 0.989728940,1.009256748
52 | 0.617118223,-0.954345976
53 | 1.281573323,-0.980004467
54 | 0.495453751,-0.368463663
55 | 0.123889926,-1.535610105
56 | 0.335354589,0.014701983
57 | -0.338484233,-0.666617714
58 | 1.027240081,-0.576596127
59 | 0.171040222,0.260085664
60 | 0.111490346,-0.164757454
61 | -0.596089124,1.235859094
62 | 0.375068347,1.108377818
63 | 0.875997125,0.491710332
64 | 0.226746929,0.666406706
65 | -2.352907879,-0.200828814
66 | -0.300730546,-0.467913893
67 | 0.206455528,0.983026064
68 | -0.740838462,-1.625012236
69 | -0.282646786,0.966176452
70 | -1.444361250,-0.192205832
71 | 1.215377424,-0.655657397
72 | -0.717685934,-1.684864615
73 | -0.592155462,-0.063825352
74 | 2.519884926,-1.399751647
75 | -0.235264465,-1.448776053
76 | 0.168046668,-0.677469532
77 | -0.858446520,0.075247524
78 | -0.426844135,0.138844531
79 | -1.010234356,0.591016780
80 | 0.679895798,0.764228183
81 | -0.387500047,-1.692940404
82 | 2.520777242,1.920958205
83 | -0.488662927,0.472892173
84 | 0.009272712,-0.936161622
85 | -0.053498613,0.573661462
86 | -0.457075249,0.502713786
87 | -0.574686946,-0.257165813
88 | 0.285084048,0.307028734
89 | -0.445707159,0.529429678
90 | 1.748563380,-1.349685484
91 | 0.428504645,0.141547824
92 | -0.710781981,1.296516455
93 | -0.907194831,-1.654794968
94 | -0.654270763,-1.238840341
95 | -0.174782471,0.165698550
96 | 2.120830108,0.656595369
97 | 0.256434229,-0.068412006
98 | 0.097702199,0.657398908
99 | -1.643564412,-1.029640776
100 | 1.287269469,0.253276516
101 | -0.779834081,-0.752704032
102 | -0.400443388,-0.144411218
103 | 0.864388402,-1.466337337
104 | -0.326945256,-2.497433918
105 | 0.312223956,0.377362888
106 | 0.948793386,0.738802681
107 | 0.456457305,0.478290244
108 | 0.466944067,-0.500205475
109 |
110 |
--------------------------------------------------------------------------------
/examples/eg/55.html:
--------------------------------------------------------------------------------
1 | Example 55 (scientific notation in axes)
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 | 1,1.15840580e-10
14 | 2,1.27013392e-10
15 | 3,0.98934807e-10
16 | 4,0.39070145e-10
17 | 5,0.58414532e-10
18 | 6,0.81521927e-10
19 | 7,0.10445206e-10
20 | 8,0.80654344e-10
21 | 9,0.40581958e-10
22 | 10,0.79816474e-10
23 | 11,0.99932164e-10
24 | 12,1.38384271e-10
25 | 13,0.76326904e-10
26 | 14,1.72209752e-10
27 | 15,0.79112567e-10
28 | 16,0.83746743e-10
29 | 17,0.98052189e-10
30 | 18,0.38358870e-10
31 | 19,0.62849971e-10
32 | 20,1.32246760e-10
33 | 21,0.55229763e-10
34 | 22,0.44525934e-10
35 | 23,1.00966373e-10
36 | 24,1.28942316e-10
37 | 25,0.31069022e-10
38 | 26,0.81746529e-10
39 | 27,1.92562534e-10
40 | 28,0.40471075e-10
41 | 29,1.91250070e-10
42 | 30,0.58428672e-10
43 | 31,-0.03844271e-10
44 | 32,2.06989036e-10
45 | 33,1.09548422e-10
46 | 34,1.79810674e-10
47 | 35,0.58709684e-10
48 | 36,0.69986275e-10
49 | 37,0.14885343e-10
50 | 38,1.63296044e-10
51 | 39,1.38856254e-10
52 | 40,0.97162970e-10
53 | 41,1.60346450e-10
54 | 42,0.79342224e-10
55 | 43,1.86991625e-10
56 | 44,0.80261642e-10
57 | 45,1.08759861e-10
58 | 46,1.40507575e-10
59 | 47,1.64700012e-10
60 | 48,1.31706171e-10
61 | 49,0.60968495e-10
62 | 50,0.92350034e-10
63 | 51,0.71165839e-10
64 | 52,1.24265064e-10
65 | 53,0.86155379e-10
66 | 54,0.26005455e-10
67 | 55,1.25064999e-10
68 | 56,1.34879880e-10
69 | 57,0.24115538e-10
70 | 58,0.15822579e-10
71 | 59,0.88160621e-10
72 | 60,0.50593021e-10
73 | 61,1.46450946e-10
74 | 62,0.27423714e-10
75 | 63,0.25086358e-10
76 | 64,0.18539027e-10
77 | 65,0.57314032e-10
78 | 66,1.16976008e-10
79 | 67,0.96172040e-10
80 | 68,1.41435173e-10
81 | 69,1.37189219e-10
82 | 70,0.82189243e-10
83 | 71,0.97711878e-10
84 | 72,0.20875285e-10
85 | 73,0.38146485e-10
86 | 74,1.33508999e-10
87 | 75,0.21035114e-10
88 | 76,1.20421560e-10
89 | 77,1.06282954e-10
90 | 78,0.74138976e-10
91 | 79,0.78066716e-10
92 | 80,0.89835894e-10
93 | 81,0.62056780e-10
94 | 82,1.05076729e-10
95 | 83,0.34183911e-10
96 | 84,1.44704536e-10
97 | 85,1.25223482e-10
98 | 86,0.55869159e-10
99 | 87,1.50257600e-10
100 | 88,1.62975026e-10
101 | 89,0.25464763e-10
102 | 90,0.62856572e-10
103 | 91,0.07996026e-10
104 | 92,1.65902530e-10
105 | 93,0.05864474e-10
106 | 94,1.06482132e-10
107 | 95,0.47950483e-10
108 | 96,0.95666573e-10
109 | 97,0.29228780e-10
110 | 98,1.07024419e-10
111 | 99,0.50601098e-10
112 | 100,0.55983770e-10
113 |
114 |
--------------------------------------------------------------------------------
/examples/eg/57.html:
--------------------------------------------------------------------------------
1 | Example 57 (explicit ticks)
2 |
3 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
20 |
21 |
22 |
23 |
24 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/examples/eg/58.html:
--------------------------------------------------------------------------------
1 | Example 58 (tick sizes/padding)
2 |
3 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
20 |
21 |
22 |
23 |
24 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/examples/eg/60.html:
--------------------------------------------------------------------------------
1 | Example 60 (categorical bars #1)
2 |
3 |
4 | female #FF7F7F; male #7F7FFF
5 |
6 |
7 |
8 | rural #10520D; urban #505050
9 |
10 |
11 |
13 |
15 |
16 |
17 |
18 |
21 |
22 |
23 |
25 |
28 |
29 |
30 |
32 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | [ { "sex": "female", "env": "rural", "age": "50-54", "rate": 15.5 },
43 | { "sex": "female", "env": "rural", "age": "55-59", "rate": 20.2 },
44 | { "sex": "female", "env": "rural", "age": "60-64", "rate": 32.1 },
45 | { "sex": "female", "env": "rural", "age": "65-69", "rate": 48.0 },
46 | { "sex": "female", "env": "rural", "age": "70-74", "rate": 65.5 },
47 | { "sex": "female", "env": "urban", "age": "50-54", "rate": 15.5 },
48 | { "sex": "female", "env": "urban", "age": "55-59", "rate": 20.2 },
49 | { "sex": "female", "env": "urban", "age": "60-64", "rate": 32.1 },
50 | { "sex": "female", "env": "urban", "age": "65-69", "rate": 48.0 },
51 | { "sex": "female", "env": "urban", "age": "70-74", "rate": 65.5 },
52 | { "sex": "male", "env": "rural", "age": "50-54", "rate": 17.5 },
53 | { "sex": "male", "env": "rural", "age": "55-59", "rate": 21.2 },
54 | { "sex": "male", "env": "rural", "age": "60-64", "rate": 37.1 },
55 | { "sex": "male", "env": "rural", "age": "65-69", "rate": 49.0 },
56 | { "sex": "male", "env": "rural", "age": "70-74", "rate": 66.5 },
57 | { "sex": "male", "env": "urban", "age": "50-54", "rate": 18.5 },
58 | { "sex": "male", "env": "urban", "age": "55-59", "rate": 23.2 },
59 | { "sex": "male", "env": "urban", "age": "60-64", "rate": 35.1 },
60 | { "sex": "male", "env": "urban", "age": "65-69", "rate": 49.0 },
61 | { "sex": "male", "env": "urban", "age": "70-74", "rate": 67.5 } ]
62 |
63 |
--------------------------------------------------------------------------------
/examples/eg/61.html:
--------------------------------------------------------------------------------
1 | Example 61 (categorical bars #2)
2 |
3 |
4 | female #FF7F7F; male #7F7FFF
5 |
6 |
7 |
8 | female:rural #FF7F7F
9 | female:urban #FF0000
10 | male:rural #7F7FFF
11 | male:urban #0000FF
12 |
13 |
14 |
16 |
18 |
19 |
20 |
21 |
23 |
24 |
25 |
26 |
29 |
30 |
31 |
32 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | [ { "sex": "female", "env": "rural", "age": "50-54", "rate": 15.5 },
41 | { "sex": "female", "env": "rural", "age": "55-59", "rate": 20.2 },
42 | { "sex": "female", "env": "rural", "age": "60-64", "rate": 32.1 },
43 | { "sex": "female", "env": "rural", "age": "65-69", "rate": 48.0 },
44 | { "sex": "female", "env": "rural", "age": "70-74", "rate": 65.5 },
45 | { "sex": "female", "env": "urban", "age": "50-54", "rate": 15.5 },
46 | { "sex": "female", "env": "urban", "age": "55-59", "rate": 20.2 },
47 | { "sex": "female", "env": "urban", "age": "60-64", "rate": 32.1 },
48 | { "sex": "female", "env": "urban", "age": "65-69", "rate": 48.0 },
49 | { "sex": "female", "env": "urban", "age": "70-74", "rate": 65.5 },
50 | { "sex": "male", "env": "rural", "age": "50-54", "rate": 15.5 },
51 | { "sex": "male", "env": "rural", "age": "55-59", "rate": 20.2 },
52 | { "sex": "male", "env": "rural", "age": "60-64", "rate": 32.1 },
53 | { "sex": "male", "env": "rural", "age": "65-69", "rate": 48.0 },
54 | { "sex": "male", "env": "rural", "age": "70-74", "rate": 65.5 },
55 | { "sex": "male", "env": "urban", "age": "50-54", "rate": 15.5 },
56 | { "sex": "male", "env": "urban", "age": "55-59", "rate": 20.2 },
57 | { "sex": "male", "env": "urban", "age": "60-64", "rate": 32.1 },
58 | { "sex": "male", "env": "urban", "age": "65-69", "rate": 48.0 },
59 | { "sex": "male", "env": "urban", "age": "70-74", "rate": 65.5 } ]
60 |
61 |
--------------------------------------------------------------------------------
/examples/eg/63.html:
--------------------------------------------------------------------------------
1 | Example 63 (complex plot stack)
2 |
3 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/examples/eg/64.html:
--------------------------------------------------------------------------------
1 | Example 64 (nested plot stacks)
2 |
3 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/examples/eg/66.html:
--------------------------------------------------------------------------------
1 | Example 66 (hierarchical JSON data)
2 |
3 |
6 |
7 |
8 |
9 |
10 | {
11 | "fathers" : [
12 | {
13 | "id" : 0,
14 | "married" : 20,
15 | "name" : "George Lopez",
16 | "sons" : null,
17 | "daughters" : [
18 | {
19 | "age" : 26,
20 | "name" : "Kimberly"
21 | }
22 | ]
23 | },
24 | {
25 | "id" : 1,
26 | "married" : 15,
27 | "name" : "Anthony Davis",
28 | "sons" : null,
29 | "daughters" : [
30 | {
31 | "age" : 26,
32 | "name" : "Angela"
33 | }
34 | ]
35 | },
36 | {
37 | "id" : 2,
38 | "married" : 17,
39 | "name" : "Anthony Perez",
40 | "sons" : null,
41 | "daughters" : [
42 | {
43 | "age" : 26,
44 | "name" : "Angela"
45 | }
46 | ]
47 | },
48 | {
49 | "id" : 3,
50 | "married" : 30,
51 | "name" : "Anthony Clark",
52 | "sons" : null,
53 | "daughters" : [
54 | {
55 | "age" : 3,
56 | "name" : "Betty"
57 | }
58 | ]
59 | },
60 | {
61 | "id" : 4,
62 | "married" : 40,
63 | "name" : "Scott Smith",
64 | "sons" : null,
65 | "daughters" : [
66 | {
67 | "age" : 29,
68 | "name" : "Linda"
69 | }
70 | ]
71 | }
72 | ]
73 | }
74 |
75 |
--------------------------------------------------------------------------------
/examples/eg/67.html:
--------------------------------------------------------------------------------
1 | Example 67 (data access via URL with Angular binding)
2 |
3 |
4 | Data set
5 |
6 | CSCO
7 | DELL
8 | FB
9 | GOOG
10 | MSFT
11 | YHOO
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/examples/eg/68.html:
--------------------------------------------------------------------------------
1 | Example 68 (data access via URL with ng-model)
2 |
3 |
4 | Data set
5 |
6 | CSCO
7 | DELL
8 | FB
9 | GOOG
10 | MSFT
11 | YHOO
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
--------------------------------------------------------------------------------
/examples/eg/70.html:
--------------------------------------------------------------------------------
1 | Example 70 (UI in layout #2)
2 |
3 | Differing ratios (more complex case):
4 |
5 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/examples/eg/71.html:
--------------------------------------------------------------------------------
1 |
Example 71 (UI in layout #3)
2 |
3 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
--------------------------------------------------------------------------------
/examples/eg/72.html:
--------------------------------------------------------------------------------
1 | Example 72 (font sizing)
2 |
3 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/examples/eg/73.html:
--------------------------------------------------------------------------------
1 | Example 73 (rug plots)
2 |
3 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
29 |
30 |
31 |
32 | 0.285644746 0.51317313
33 | -1.148812623 0.14225916
34 | 0.311602315 0.13027272
35 | 1.557207138 1.41844903
36 | -0.578055154 -0.81454420
37 | 0.537309711 -0.61242967
38 | 0.210967551 -0.72789853
39 | 2.509081885 1.50031486
40 | -0.797228528 -0.45965649
41 | 0.299320701 -0.09480252
42 | -0.272059342 0.01294820
43 | -0.005979462 0.01445887
44 | -0.178707975 -0.55669303
45 | -0.006892134 -0.29560921
46 | 0.135256556 0.45395144
47 | -0.186289896 -0.82873833
48 | -0.353571155 -0.07675102
49 | -0.514441579 -0.14968482
50 | -1.240305819 -1.82166849
51 | -0.615962470 0.41422915
52 | 0.349033634 0.02524461
53 | 0.461894754 0.05639841
54 | -1.261863822 -1.04390604
55 | 0.034621557 0.19090845
56 | 1.928425810 1.38149632
57 | -1.149954025 -2.18883066
58 | 0.050614913 -0.88399132
59 | 1.035680017 1.70454393
60 | -0.499590965 -1.28281875
61 | -0.666756822 1.15948862
62 | 0.435438547 0.37237258
63 | -0.155318133 -1.06040682
64 | 1.481993769 -0.06881688
65 | -1.511312250 -0.22264407
66 | -0.432459266 -1.29551169
67 | -0.690148575 -1.86868891
68 | -0.103233823 -0.12038043
69 | -1.844196417 -0.93573464
70 | 1.826117287 1.21206105
71 | 0.320935314 0.25925888
72 | -1.525831341 -1.10858940
73 | 1.209172684 1.91201791
74 | 1.106126867 0.14825319
75 | -0.553749429 -0.67196790
76 | -0.249082499 0.00858775
77 | 0.649241680 0.59109080
78 | -0.543567871 -0.23588514
79 | 0.492066325 0.33628258
80 | -0.335085309 -0.27157110
81 | 0.076548240 -0.14132933
82 | -1.005405493 -1.63229844
83 | -1.907309079 -1.16307967
84 | -0.366687755 0.08770088
85 | -0.344698293 -0.27076719
86 | 0.329979996 -0.25111909
87 | 1.807804597 1.51456956
88 | -0.529689657 -0.27957604
89 | 0.370305013 0.55585935
90 | -2.261031339 -1.59399133
91 | 1.675134892 2.26037665
92 | -0.539122694 -1.06306338
93 | -0.360739527 -0.25880583
94 | 0.076953686 0.32968050
95 | -0.400332185 0.11429251
96 | -0.967087297 -0.38048916
97 | 0.189531474 -0.95084680
98 | -2.474058006 -2.59394647
99 | -0.158475717 1.05761489
100 | -0.621382712 0.01097507
101 | 1.200614035 1.34225532
102 | -1.177523811 -0.22063496
103 | 1.039314047 0.44533256
104 | 0.067742030 -0.48032040
105 | -1.551305739 -1.85725860
106 | -1.761070935 -2.20419867
107 | -0.198132305 -1.20533645
108 | 1.280805841 0.14251391
109 | -0.839691372 0.39519718
110 | -0.265819159 0.67382983
111 | 0.033611268 0.10353763
112 | 1.111285752 -0.05022565
113 | -0.706972414 -0.50828013
114 | -2.182363843 -1.87602629
115 | -0.147025699 -0.15746860
116 | 0.356084802 -0.06492207
117 | 1.384482023 -0.26040303
118 | -0.447964898 -0.78367243
119 | 0.189728346 -0.30611561
120 | -1.336760966 -2.12738951
121 | -0.388678681 -0.36140845
122 | -0.455205530 -0.38471133
123 | 2.092144202 1.07277948
124 | -0.200774306 -0.40368608
125 | 2.032352811 2.13474507
126 | -0.327691870 0.46363928
127 | 0.677163072 -0.63910965
128 | -2.124381470 -3.16540892
129 | -1.170917823 -1.14982455
130 | 0.184655020 1.28058455
131 | 0.402008318 0.74027822
132 |
133 |
--------------------------------------------------------------------------------
/examples/eg/76.html:
--------------------------------------------------------------------------------
1 | Example 76 (axis transformations)
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/examples/eg/77.html:
--------------------------------------------------------------------------------
1 | Example 77 (legends)
2 |
3 | Default: position at top left, no frame, default white background;
4 | explicit entries.
5 |
6 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | Position at top left, frame, default white background; explicit
17 | entries.
18 |
19 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | Position at top left, frame and transparent background; explicit
30 | entries.
31 |
32 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | Position at bottom left, frame and default white background;
43 | explicit entries.
44 |
45 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 | Position at top right, frame and default white background; explicit
56 | entries.
57 |
58 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | Explicit position, frame and default white background; explicit
69 | entries.
70 |
71 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 | Implicit entries.
82 |
83 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | Entry sorting.
92 |
93 |
95 |
96 |
97 |
98 |
99 |
100 |
101 | Interactivity.
102 |
103 |
105 |
106 |
107 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/examples/eg/79.html:
--------------------------------------------------------------------------------
1 | Example 79 (missing data)
2 |
3 |
4 |
5 |
7 |
9 |
10 |
11 |
12 |
13 |
15 |
17 |
18 |
19 |
20 |
21 |
23 |
25 |
26 |
27 |
28 |
29 |
31 |
36 |
37 |
38 |
40 |
42 |
43 |
44 | "2014-01-02T21:40:51.293Z", 5,8
45 | "2014-01-02T23:22:51.293Z", 4,7
46 | "2014-01-03T07:53:41.744Z", 1,6
47 | "2014-01-03T14:53:41.744Z", 2,
48 | "2014-01-03T16:27:52.161Z", 4,8
49 | "2014-01-03T18:27:52.161Z", 5,
50 | "2014-01-03T20:27:52.161Z", 4,7
51 | "2014-01-03T22:34:26.221Z", 6,4
52 |
53 |
54 |
--------------------------------------------------------------------------------
/examples/eg/80.html:
--------------------------------------------------------------------------------
1 | Example 80 (Tom's area plots)
2 |
3 |
4 | 1, 40, 60
5 | 2, 40, 60
6 | 3, 40, 60
7 | 4, 40, 60
8 | 5, 40, 60
9 | 6, 40, 60
10 | 7, 40, 60
11 | 8, 40, 60
12 | 9, 40, 60
13 | 10, 40, 60
14 |
15 |
16 | 1, 40
17 | 2, 61
18 | 3, 40
19 | 4, 54
20 | 5, 40
21 | 6, 40
22 | 7, 61
23 | 8, 40
24 | 9, 40
25 | 10, 49
26 |
27 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/examples/eg/81.html:
--------------------------------------------------------------------------------
1 | Example 81 (points plot with textual markers)
2 |
3 |
5 |
7 |
8 |
9 |
11 |
13 |
14 |
15 |
18 |
20 |
21 |
22 |
25 |
27 |
29 |
30 |
31 |
34 |
36 |
38 |
39 |
40 |
43 |
45 |
47 |
48 |
49 |
50 | Tom,35.1,6.3,male,20
51 | Harriet,1.5,2.1,female,10
52 | Antonia,35.2,5.1,female,25
53 | Ada,4.5,3.1,female,12
54 | Foo,10.1,3.9,female,15
55 | Bar,80.4,9.1,female,22
56 | Baz,5.2,3.2,male,13
57 | Jim,60.1,8.1,male,24
58 | Ted,70.1,9.1,male,18
59 | Jerry,40.6,7,male,16
60 |
61 |
--------------------------------------------------------------------------------
/examples/eg/84.html:
--------------------------------------------------------------------------------
1 | Example 84 (date metadata for JSON)
2 |
3 |
6 |
7 |
8 |
9 |
10 | [{ "date":"2012-01-01", "tmp": 3.80, "prc": 0.90 },
11 | { "date":"2012-01-02", "tmp": 5.50, "prc": 3.40 },
12 | { "date":"2012-01-03", "tmp": 7.90, "prc": 9.40 },
13 | { "date":"2012-01-04", "tmp": 8.50, "prc":13.00 },
14 | { "date":"2012-01-05", "tmp": 4.90, "prc": 3.20 },
15 | { "date":"2012-01-06", "tmp": 2.70, "prc": 1.40 },
16 | { "date":"2012-01-07", "tmp": 5.70, "prc": 1.60 },
17 | { "date":"2012-01-08", "tmp": 6.50, "prc": 0.60 },
18 | { "date":"2012-01-09", "tmp": 6.80, "prc": 0.40 },
19 | { "date":"2012-01-10", "tmp": 2.20, "prc": 0.00 },
20 | { "date":"2012-01-11", "tmp": 1.40, "prc": 0.00 },
21 | { "date":"2012-01-12", "tmp": 1.60, "prc": 0.00 },
22 | { "date":"2012-01-13", "tmp":-0.10, "prc": 0.00 },
23 | { "date":"2012-01-14", "tmp": 1.70, "prc": 3.40 },
24 | { "date":"2012-01-15", "tmp":-1.10, "prc": 0.00 },
25 | { "date":"2012-01-16", "tmp":-1.20, "prc": 0.00 },
26 | { "date":"2012-01-17", "tmp":-1.40, "prc": 0.00 },
27 | { "date":"2012-01-18", "tmp":-3.80, "prc": 0.00 },
28 | { "date":"2012-01-19", "tmp":-2.60, "prc": 0.00 },
29 | { "date":"2012-01-20", "tmp": 2.60, "prc":15.40 },
30 | { "date":"2012-01-21", "tmp": 5.50, "prc": 3.20 },
31 | { "date":"2012-01-22", "tmp": 5.10, "prc": 2.20 },
32 | { "date":"2012-01-23", "tmp": 5.50, "prc": 2.70 },
33 | { "date":"2012-01-24", "tmp": 7.50, "prc":13.00 },
34 | { "date":"2012-01-25", "tmp": 6.80, "prc":12.80 },
35 | { "date":"2012-01-26", "tmp": 4.00, "prc": 3.40 },
36 | { "date":"2012-01-27", "tmp": 2.50, "prc": 0.00 },
37 | { "date":"2012-01-28", "tmp": 2.70, "prc": 0.50 },
38 | { "date":"2012-01-29", "tmp": 5.40, "prc":11.00 },
39 | { "date":"2012-01-30", "tmp": 7.60, "prc": 0.80 },
40 | { "date":"2012-01-31", "tmp": 6.80, "prc": 1.80 }]
41 |
42 |
--------------------------------------------------------------------------------
/examples/img/glyphicons-halflings-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/examples/img/glyphicons-halflings-white.png
--------------------------------------------------------------------------------
/examples/img/glyphicons-halflings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/examples/img/glyphicons-halflings.png
--------------------------------------------------------------------------------
/examples/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | My AngularJS App
7 |
8 |
9 |
10 |
11 |
12 |
13 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/examples/lib:
--------------------------------------------------------------------------------
1 | ../lib
--------------------------------------------------------------------------------
/examples/tst.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | My AngularJS App
6 |
7 |
8 |
9 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/lib/angular/angular-cookies.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.0.4
3 | (c) 2010-2012 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(m,f,l){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(d,c){var b={},g={},h,i=!1,j=f.copy,k=f.isUndefined;c.addPollFn(function(){var a=c.cookies();h!=a&&(h=a,j(a,g),j(a,b),i&&d.$apply())})();i=!0;d.$watch(function(){var a,e,d;for(a in g)k(b[a])&&c.cookies(a,l);for(a in b)e=b[a],f.isString(e)?e!==g[a]&&(c.cookies(a,e),d=!0):f.isDefined(g[a])?b[a]=g[a]:delete b[a];if(d)for(a in e=c.cookies(),b)b[a]!==e[a]&&(k(e[a])?delete b[a]:b[a]=e[a])});return b}]).factory("$cookieStore",
7 | ["$cookies",function(d){return{get:function(c){return f.fromJson(d[c])},put:function(c,b){d[c]=f.toJson(b)},remove:function(c){delete d[c]}}}])})(window,window.angular);
8 |
--------------------------------------------------------------------------------
/lib/angular/angular-loader.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.0.4
3 | (c) 2010-2012 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(i){'use strict';function d(c,b,e){return c[b]||(c[b]=e())}return d(d(i,"angular",Object),"module",function(){var c={};return function(b,e,f){e&&c.hasOwnProperty(b)&&(c[b]=null);return d(c,b,function(){function a(a,b,d){return function(){c[d||"push"]([a,b,arguments]);return g}}if(!e)throw Error("No module: "+b);var c=[],d=[],h=a("$injector","invoke"),g={_invokeQueue:c,_runBlocks:d,requires:e,name:b,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide","service"),
7 | value:a("$provide","value"),constant:a("$provide","constant","unshift"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:h,run:function(a){d.push(a);return this}};f&&h(f);return g})}})})(window);
8 |
--------------------------------------------------------------------------------
/lib/angular/angular-resource.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.0.4
3 | (c) 2010-2012 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(C,d,w){'use strict';d.module("ngResource",["ng"]).factory("$resource",["$http","$parse",function(x,y){function s(b,e){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(e?null:/%20/g,"+")}function t(b,e){this.template=b+="#";this.defaults=e||{};var a=this.urlParams={};h(b.split(/\W/),function(f){f&&b.match(RegExp("[^\\\\]:"+f+"\\W"))&&(a[f]=!0)});this.template=b.replace(/\\:/g,":")}function u(b,e,a){function f(m,a){var b=
7 | {},a=o({},e,a);h(a,function(a,z){var c;a.charAt&&a.charAt(0)=="@"?(c=a.substr(1),c=y(c)(m)):c=a;b[z]=c});return b}function g(a){v(a||{},this)}var k=new t(b),a=o({},A,a);h(a,function(a,b){a.method=d.uppercase(a.method);var e=a.method=="POST"||a.method=="PUT"||a.method=="PATCH";g[b]=function(b,c,d,B){var j={},i,l=p,q=null;switch(arguments.length){case 4:q=B,l=d;case 3:case 2:if(r(c)){if(r(b)){l=b;q=c;break}l=c;q=d}else{j=b;i=c;l=d;break}case 1:r(b)?l=b:e?i=b:j=b;break;case 0:break;default:throw"Expected between 0-4 arguments [params, data, success, error], got "+
8 | arguments.length+" arguments.";}var n=this instanceof g?this:a.isArray?[]:new g(i);x({method:a.method,url:k.url(o({},f(i,a.params||{}),j)),data:i}).then(function(b){var c=b.data;if(c)a.isArray?(n.length=0,h(c,function(a){n.push(new g(a))})):v(c,n);(l||p)(n,b.headers)},q);return n};g.prototype["$"+b]=function(a,d,h){var m=f(this),j=p,i;switch(arguments.length){case 3:m=a;j=d;i=h;break;case 2:case 1:r(a)?(j=a,i=d):(m=a,j=d||p);case 0:break;default:throw"Expected between 1-3 arguments [params, success, error], got "+
9 | arguments.length+" arguments.";}g[b].call(this,m,e?this:w,j,i)}});g.bind=function(d){return u(b,o({},e,d),a)};return g}var A={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}},p=d.noop,h=d.forEach,o=d.extend,v=d.copy,r=d.isFunction;t.prototype={url:function(b){var e=this,a=this.template,f,g,b=b||{};h(this.urlParams,function(h,c){f=b.hasOwnProperty(c)?b[c]:e.defaults[c];d.isDefined(f)&&f!==null?(g=s(f,!0).replace(/%26/gi,"&").replace(/%3D/gi,
10 | "=").replace(/%2B/gi,"+"),a=a.replace(RegExp(":"+c+"(\\W)","g"),g+"$1")):a=a.replace(RegExp("(/?):"+c+"(\\W)","g"),function(a,b,c){return c.charAt(0)=="/"?c:b+c})});var a=a.replace(/\/?#$/,""),k=[];h(b,function(a,b){e.urlParams[b]||k.push(s(b)+"="+s(a))});k.sort();a=a.replace(/\/*$/,"");return a+(k.length?"?"+k.join("&"):"")}};return u}])})(window,window.angular);
11 |
--------------------------------------------------------------------------------
/lib/angular/angular-sanitize.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.0.4
3 | (c) 2010-2012 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(I,g){'use strict';function i(a){var d={},a=a.split(","),b;for(b=0;b=0;e--)if(f[e]==b)break;if(e>=0){for(c=f.length-1;c>=e;c--)d.end&&d.end(f[c]);f.length=
7 | e}}var c,h,f=[],j=a;for(f.last=function(){return f[f.length-1]};a;){h=!0;if(!f.last()||!q[f.last()]){if(a.indexOf("<\!--")===0)c=a.indexOf("--\>"),c>=0&&(d.comment&&d.comment(a.substring(4,c)),a=a.substring(c+3),h=!1);else if(B.test(a)){if(c=a.match(r))a=a.substring(c[0].length),c[0].replace(r,e),h=!1}else if(C.test(a)&&(c=a.match(s)))a=a.substring(c[0].length),c[0].replace(s,b),h=!1;h&&(c=a.indexOf("<"),h=c<0?a:a.substring(0,c),a=c<0?"":a.substring(c),d.chars&&d.chars(k(h)))}else a=a.replace(RegExp("(.*)<\\s*\\/\\s*"+
8 | f.last()+"[^>]*>","i"),function(b,a){a=a.replace(D,"$1").replace(E,"$1");d.chars&&d.chars(k(a));return""}),e("",f.last());if(a==j)throw"Parse Error: "+a;j=a}e()}function k(a){l.innerHTML=a.replace(//g,">")}function u(a){var d=!1,b=g.bind(a,a.push);return{start:function(a,c,h){a=g.lowercase(a);!d&&q[a]&&(d=a);!d&&v[a]==
9 | !0&&(b("<"),b(a),g.forEach(c,function(a,c){var e=g.lowercase(c);if(G[e]==!0&&(w[e]!==!0||a.match(H)))b(" "),b(c),b('="'),b(t(a)),b('"')}),b(h?"/>":">"))},end:function(a){a=g.lowercase(a);!d&&v[a]==!0&&(b(""),b(a),b(">"));a==d&&(d=!1)},chars:function(a){d||b(t(a))}}}var s=/^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,r=/^<\s*\/\s*([\w:-]+)[^>]*>/,A=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,C=/^,B=/^<\s*\//,D=/<\!--(.*?)--\>/g,
10 | E=//g,H=/^((ftp|https?):\/\/|mailto:|#)/,F=/([^\#-~| |!])/g,p=i("area,br,col,hr,img,wbr"),x=i("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),y=i("rp,rt"),o=g.extend({},y,x),m=g.extend({},x,i("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),n=g.extend({},y,i("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),
11 | q=i("script,style"),v=g.extend({},p,m,n,o),w=i("background,cite,href,longdesc,src,usemap"),G=g.extend({},w,i("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,span,start,summary,target,title,type,valign,value,vspace,width")),l=document.createElement("pre");g.module("ngSanitize",[]).value("$sanitize",function(a){var d=[];
12 | z(a,u(d));return d.join("")});g.module("ngSanitize").directive("ngBindHtml",["$sanitize",function(a){return function(d,b,e){b.addClass("ng-binding").data("$binding",e.ngBindHtml);d.$watch(e.ngBindHtml,function(c){c=a(c);b.html(c||"")})}}]);g.module("ngSanitize").filter("linky",function(){var a=/((ftp|https?):\/\/|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s\.\;\,\(\)\{\}\<\>]/,d=/^mailto:/;return function(b){if(!b)return b;for(var e=b,c=[],h=u(c),f,g;b=e.match(a);)f=b[0],b[2]==b[3]&&(f="mailto:"+f),g=b.index,
13 | h.chars(e.substr(0,g)),h.start("a",{href:f}),h.chars(b[0].replace(d,"")),h.end("a"),e=e.substring(g+b[0].length);h.chars(e);return c.join("")}})})(window,window.angular);
14 |
--------------------------------------------------------------------------------
/lib/angular/version.txt:
--------------------------------------------------------------------------------
1 | 1.0.4
2 |
--------------------------------------------------------------------------------
/lib/jquery.csv.js:
--------------------------------------------------------------------------------
1 | jquery.csv-0.71.min.js
--------------------------------------------------------------------------------
/radian.min.css:
--------------------------------------------------------------------------------
1 | .radian svg{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;width:100%;height:100%}.radian svg .no-data text{font-size:24px;font-weight:bold}.radian .background{fill:white;fill-opacity:0}div.radian{position:relative}div.radian div.radian{position:absolute}div.radian-ui{background-color:transparent;position:absolute;top:0;left:0}div.radian-axis-switch{position:absolute;white-space:nowrap}div.radian-stroke-switch{position:absolute;white-space:nowrap}div.radian-histogram-switch{position:absolute;white-space:nowrap}div.radian-legend-switch{position:absolute;white-space:nowrap}div.radian-legend-switch input{position:absolute;display:block;margin:0}.radian .axis path{fill:none;stroke:#000;stroke-opacity:.75;shape-rendering:crispEdges}.radian .axis line{fill:none;stroke:#000;stroke-opacity:.25;shape-rendering:crispEdges}.radian .axis path.domain{stroke-opacity:.75}.radian .axis line.zero{stroke-opacity:.75}.radian .axis .axisMaxMin text{font-weight:bold}.radian .brush .extent{stroke:#fff;fill-opacity:.125;shape-rendering:crispEdges}.tab-content.radian-tabs{overflow:visible}
--------------------------------------------------------------------------------
/src/debug.js:
--------------------------------------------------------------------------------
1 | // Dump tree of Angular scopes to console: useful for making sure that
2 | // scopes have been set up properly in complicated transclusion cases.
3 |
4 | radian.factory('dumpScope', function()
5 | {
6 | 'use strict';
7 |
8 | var go = function(scope, indent) {
9 | var indentstr = "";
10 | for (var i = 0; i < indent; ++i)
11 | indentstr = indentstr.concat(" ");
12 | console.log(indentstr + scope.$id + ": " +
13 | Object.keys(scope).filter(function(k) {
14 | return k.charAt(0) != "$" && k != "this";
15 | }));
16 | for (var ch = scope.$$childHead; ch; ch = ch.$$nextSibling)
17 | go(ch, indent + 2);
18 | };
19 | return function(scope) { go(scope, 0); };
20 | });
21 |
--------------------------------------------------------------------------------
/src/end.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/src/end.js
--------------------------------------------------------------------------------
/src/start.js:
--------------------------------------------------------------------------------
1 | var radian = angular.module('radian', []);
2 |
3 |
--------------------------------------------------------------------------------
/src/ui.js:
--------------------------------------------------------------------------------
1 | radian.directive('radianAxisSwitch', function()
2 | {
3 | return {
4 | restrict: 'E',
5 | template:
6 | ['',
7 | '',
8 | '{{axisName}} axis ⇒ {{label}}',
9 | ' ',
10 | '
'].join(''),
11 | replace: true,
12 | scope: true,
13 | link: function(scope, elm, as) {
14 | var axis = as.axis || 'y';
15 | scope.axisName = axis == 'y' ? 'Y' : 'X';
16 | var uiattr = axis == 'y' ? 'uiAxisYTransform' : 'uiAxisXTransform';
17 | var attr = axis == 'y' ? 'axisYTransform' : 'axisXTransform';
18 | var type = scope[uiattr] || 'log';
19 | scope.states = type.split(/,/);
20 | if (scope.states.length == 1 && scope.states[0] != 'linear')
21 | scope.states.unshift('linear');
22 | for (var i = 0; i < scope.states.length; ++i)
23 | if (['linear', 'log', 'linear-0'].indexOf(scope.states[i]) < 0)
24 | throw Error("invalid UI axis switch type");
25 | function setLabel() {
26 | switch (scope.states[(scope.idx + 1) % scope.states.length]) {
27 | case 'linear': scope.label = 'Linear'; break;
28 | case 'log': scope.label = 'Log'; break;
29 | case 'linear-0': scope.label = 'Linear (from 0)'; break;
30 | }
31 | };
32 | scope.state = scope[attr] || scope.states[0];
33 | scope.idx = Math.max(0, scope.states.indexOf(scope.state));
34 | setLabel();
35 | scope.$on('setupExtraAfter', function() {
36 | var m = scope.views[0].margin;
37 | if (axis == 'y')
38 | elm.css('top', (m.top+3)+'px').css('left', (m.left+3)+'px');
39 | else
40 | elm.css('bottom', (m.bottom+3)+'px').css('right', (m.right+3)+'px');
41 | });
42 | scope.switchState = function() {
43 | scope.idx = (scope.idx + 1) % scope.states.length;
44 | scope.state = scope.states[scope.idx];
45 | setLabel();
46 | scope.$emit(axis == 'y' ? 'yAxisChange' : 'xAxisChange', scope.state);
47 | };
48 | }
49 | };
50 | });
51 |
52 |
53 | radian.directive('radianStrokeSwitch', function()
54 | {
55 | return {
56 | restrict: 'E',
57 | template:
58 | ['',
59 | '
',
60 | '{{swbutlab}} ',
61 | '',
63 | '{{swbut}}',
64 | ' ',
65 | '
',
66 | '
',
67 | '',
68 | '{{swsel[$parent.strokesel]}} ⇒',
69 | ' ',
70 | '
',
71 | '
'].join(""),
72 | replace: true,
73 | scope: true,
74 | link: function(scope, elm, as) {
75 | if (!scope.strokeSwitch) return;
76 | scope.$on('setupExtraAfter', function() {
77 | var m = scope.views[0].margin;
78 | elm.css('top', (m.top+3)+'px').css('right', (m.right+3)+'px');
79 | });
80 | scope.switches = scope.strokeSwitch.split(';');
81 | scope.stepStroke = function() {
82 | scope.$parent.strokesel =
83 | (scope.$parent.strokesel + 1) % scope.switches.length;
84 | };
85 | var label = scope.strokeSwitchLabel;
86 | if (scope.switches.length == 1) {
87 | // On/off UI.
88 | scope.swbut = scope.switches[0];
89 | scope.swbutlab = label;
90 | } else {
91 | // Selector UI.
92 | scope.swsel = scope.switches;
93 | }
94 | }
95 | };
96 | });
97 |
98 |
99 | radian.directive('radianHistogramSwitch', function()
100 | {
101 | return {
102 | restrict: 'E',
103 | template:
104 | ['',
105 | '',
106 | 'Bins: {{uiNBins}}',
107 | ' ',
108 | '',
109 | '-5 ',
110 | ' ',
111 | '',
112 | '-1',
113 | ' ',
114 | '',
115 | '+1',
116 | ' ',
117 | '',
118 | '+5 ',
119 | ' ',
120 | '
'].join(""),
121 | replace: true,
122 | scope: true,
123 | link: function(scope, elm, as) {
124 | if (!scope.uiHistogramBins) return;
125 | scope.$on('setupExtraAfter', function() {
126 | var m = scope.views[0].margin;
127 | elm.css('bottom', (m.bottom+3)+'px').css('left', (m.left+3)+'px');
128 | });
129 | scope.uiNBins = scope[scope.histogramBinsVar];
130 | scope.$watch('histogramBinsVar', function(n, o) {
131 | scope.uiNBins = scope[scope.histogramBinsVar];
132 | });
133 | scope.up = function(n) {
134 | scope.uiNBins += n;
135 | scope.$parent[scope.histogramBinsVar] = scope.uiNBins;
136 | };
137 | scope.dn = function(n) {
138 | scope.uiNBins = Math.max(scope.uiNBins - n, 1);
139 | scope.$parent[scope.histogramBinsVar] = scope.uiNBins;
140 | };
141 | }
142 | };
143 | });
144 |
--------------------------------------------------------------------------------
/tools/yuicompressor-2.4.8pre.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openbrainsrc/Radian/c687e5d4c0a7e1684c445274c184664293922a4a/tools/yuicompressor-2.4.8pre.jar
--------------------------------------------------------------------------------