Created by Full ScalesHome Demo Download GitHub
dangle-js is a set of AngularJS directives that provide common visualizations based on D3.
Dangle provides directives that allow you to create visualizations of your data. You can easily bind the result of queries to HTML elements. When the results update, your visualizations will also update. You can build powerful, interactive applications with just a few lines of HTML.
Visualizations are built with SVG so they’re completely re-sizable and work perfectly across any device (desktop or mobile). Because we’re using SVG however, you will need to use a modern browser (any current browser including IE > 8).
NOTE: this is still pretty experimental work so consider the APIs volatile.
D3 comes from a very prestigious lineage and is arguably one of the most powerful open source visualizations libraries available. This power comes at a cost of having a relatively steep learning curve. The goal of dangle is to minimize this curve as much as possible.
We chose AngularJS because directives allow us to create an HTML based DSL around D3, making it extremely easy to insert (i.e., dangle) graphs from the DOM in a concise, declarative manner. D3's direct DOM manipulation fits well with Angular's DOM based templating. We believe that in order to provide the best experience, we have to be opinionated here.
If you'd like something more framework agnostic then you should have a look at NVD3.
<fs:bar />Horizontal bar chart. Good for visualizing terms facets
<fs:column />Vertical bar chart.
<fs:area />A traditional area chart (fill can be set to none to produce a line graph)
<fs:pie />A naive pie chart (you probably want to use donut)
<fs:donut />A more sophisticated pie chart that includes labels and innner radius settings.
<fs:date-histo />This is really a time-series being exploited to display an elasticsearch date-histogram. It has several caveats1,2
elasticsearch allows you to define different time intervals in your query but the interval is not returned as part of the response, making it difficult to auto-detect the proper interval. We've got a pull request in that resolves this.
the date histogram in elasticsearch is a true histogram meaning that empty bins are not created for missing intervals. This causes issues with the x-axis (time) because we're using D3 time scales which automatically produce the best time labels for the given period. We're working on a possible patch to resolve this in elasticsearch.
You can find the official documentation here
You can see a simple demo here.
3rd Party Documentation
- AngularJS - HTML enhanced for web apps.
- elasticsearch - the most advanced search engine to date.
Copyright (c) 2012 FullScale Labs, LLC
Licensed under the MIT license.