Giter Club home page Giter Club logo

dangle's Introduction

dangle.js

A set of AngularJS directives that provide common D3 visualizations for elasticsearch.

NOTE: this is still pretty experimental work so consider the APIs volatile.

Project Goal

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.

At the cost of starting a potential religious war, let me briefly explain why we chose AngularJS over other alternatives such as Backbone and Ember.

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.

Available Directives

  • <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

  1. 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.

  2. 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.

Documentation

You can find the official documentation here

You will also be able to find unofficial documentation and examples on on our blog and GitHub Gist pages here and 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.
  • D3 - a JavaScript library for manipulating documents based on data.

License

Copyright (c) 2012 FullScale Labs, LLC
Licensed under the MIT license.

dangle's People

Contributors

egaumer avatar karmi avatar mattweber avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.