Git Product home page Git Product logo

d3fc's Introduction

D3FC Logo

Build status npm version

Components to rapidly build fast, highly customisable, interactive charts with D3

Installation

The latest release of D3FC is available via npm or the unpkg CDN. The D3FC project is composed of a number of separate packages each of which can be installed via npm and used independently, or if you prefer you can install the entire D3FC bundle, which includes all of the separate packages -

npm install d3fc
<script src="https://unpkg.com/d3"></script>
<script src="https://unpkg.com/d3fc"></script>

Test your installation using the simple chart example.

Documentation

The following getting-started guides are available -

  • Building a Chart - a walk through building a chart with D3FC and what makes it different from other libraries.
  • The Decorate Pattern - the pattern D3FC employs, resulting in charting components that are both simple and flexible.
  • Transitions - how to use D3 transitions with D3FC.

For API documentation see the corresponding package documentation -

Examples can be found on the project website. These same examples are also available offline.

Framework integration examples:

There are also a number of other documents and articles that provide a bit more background regarding the design principles of D3FC -

Developing

This project is a mono-repo that uses Lerna to manage dependencies between packages. To get started, run -

npm ci
npm test

When making changes to a package, you can execute the following either from within the package folder to build just that package or from the project root to build all packages -

npm run bundle

To open a development sandbox which is automatically updated when you save changes to source files, navigate to the project root and run -

npm start

Releases

Releases are managed via CI and semantic release.

License

These components are licensed under the MIT License.

Sponsors

Project supported by Scott Logic.

d3fc's People

Contributors

abrown-scottlogic avatar alisd23 avatar andy-lee-eng avatar artonevala avatar cfisher-scottlogic avatar chrisprice avatar colineberhardt avatar cprice-scottlogic avatar dbarkey-scottlogic avatar greenkeeperio-bot avatar j-n-white avatar jdhodges avatar jisted-scottlogic avatar jleft avatar joelwilliamsmith avatar mbssantos avatar mortezae avatar moxon6 avatar msuperina avatar murcikan-scottlogic avatar oliverforeman avatar rcassonscottlogic avatar rlax avatar rlewis-sl avatar ro4052 avatar tlsim avatar todd1251 avatar tommclaughlan avatar tradingcage avatar wpferg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

d3fc's Issues

Drawing a Fibonacci Fan directly north causes Javascript errors

Relevant line numbers below:

Error: Invalid value for attribute y2="-Infinity" d3.js:594attrConstant d3.js:594(anonymous function) d3.js:884d3_selection_each d3.js:890d3_selectionPrototype.each d3.js:883d3_selectionPrototype.attr d3.js:583setFanLines fibonacciFan.js:262fibonacciFan.update fibonacciFan.js:293redrawChart scottLogicChartCtrl.js:471(anonymous function) scottLogicChartCtrl.js:399event d3.js:437(anonymous function) d3.js:473zoomed d3.js:1361moved d3.js:1379(anonymous function) d3.js:1052

Error: Invalid value for attribute points="620.7777777777777,393.58513667088164 1510,-Infinity 1510,-Infinity" d3.js:594attrConstant d3.js:594(anonymous function) d3.js:884d3_selection_each d3.js:890d3_selectionPrototype.each d3.js:883d3_selectionPrototype.attr d3.js:583setFanLines fibonacciFan.js:263fibonacciFan.update fibonacciFan.js:293redrawChart scottLogicChartCtrl.js:471(anonymous function) scottLogicChartCtrl.js:399event d3.js:437(anonymous function) d3.js:473zoomed d3.js:1361moved d3.js:1379(anonymous function)

Measurement Tool

The measurement tool has the following issues:

It functions even when hidden.
It vanishes after the last click, there should be an additional click to remove it much like the Fibonacci fan.
It does not scroll of scale when the chart does.
It should have some form of snapping mode.

Geometric zoom

Like the comparison series, components that draw zoomable elements should support geometric zooming.
See also #17

Finance scale tick placement

Currently these come from a linear scale, so will be placed at arbitrary weekdays. At different levels of zoom, it might make more sense to show ticks at the start of each week / month. This would require calculating tick placement using time intervals.

Right axis in AngularJS example with RSI

When toggling the RSI component on in the Angular example, the labels on the right axis do not fit in the margin. It's as if the margin is being re-sized at this point.

Thoughts on dimension components

  1. dimensions => rename to chart layout
  2. Create the ideal example - with the rendered output
  3. Have accessors on the dimension to obtain the components (chartArea, plotArea)
  4. Needs a picture!!!

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.