Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/CSNW/d3.compose
Compose complex, data-driven visualizations from reusable charts and components with d3
https://github.com/CSNW/d3.compose
Last synced: 5 days ago
JSON representation
Compose complex, data-driven visualizations from reusable charts and components with d3
- Host: GitHub
- URL: https://github.com/CSNW/d3.compose
- Owner: CSNW
- License: mit
- Created: 2014-03-07T14:59:21.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2022-12-10T17:12:27.000Z (almost 2 years ago)
- Last Synced: 2024-04-14T13:07:09.292Z (7 months ago)
- Language: JavaScript
- Homepage: http://CSNW.github.io/d3.compose/
- Size: 5.85 MB
- Stars: 696
- Watchers: 24
- Forks: 24
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - CSNW/d3.compose - Compose complex, data-driven visualizations from reusable charts and components with d3 (others)
README
# d3.compose
Compose rich, data-bound charts from charts (like Lines and Bars) and components (like Axis, Title, and Legend) with d3 and d3.chart.
- Advanced layout engine automatically positions and sizes charts and components, layers by z-index, and is responsive by default with automatic scaling
- Standard library of charts and components for quickly creating beautiful charts
- `Chart` and `Component` bases for creating composable and reusable charts and components
- Includes helpers and mixins that cover a range of standard functionality
- CSS class-based styling is extensible and easy to customize to match your site[![npm version](https://img.shields.io/npm/v/d3.compose.svg?style=flat-square)](https://www.npmjs.com/package/d3.compose)
## Getting Started
1. Download the [latest release](https://github.com/CSNW/d3.compose/releases)
2. Download the dependencies:- [D3.js (>= 3.0.0)](http://d3js.org/)
- [d3.chart (>= 0.2.0)](http://misoproject.com/d3-chart/)3. Add d3.compose and dependencies to your html:
```html
```4. Create your first chart
```js
var chart = d3.select('#chart')
.chart('Compose', function(data) {
var scales = {
x: {type: 'ordinal', data: data, key: 'x'},
y: {data: data, key: 'y'}
};var charts = [
d3c.lines({
data: data,
xScale: scales.x,
yScale: scales.y
})
];var yAxis = d3c.axis({scale: scales.y});
return [
[yAxis, d3c.layered(charts)]
];
})
.width(600)
.height(400);chart.draw([{x: 0, y: 10}, {x: 10, y: 50}, {x: 20, y: 30}]);
```## Examples and Docs
See [http://CSNW.github.io/d3.compose/](http://CSNW.github.io/d3.compose/) for live examples and docs.
## Development
1. Install modules `npm install`
2. Test with `npm test` or `npm run test:watch`
3. Build with `npm run build`Note on testing: Requires Node 4+ (for latest jsdom) and d3.chart doesn't currently support running from within node
and requires the following line be added inside the IIFE in `node_modules/d3.chart.js`: `window = this;` (before `use strict`). This will be resolved by a [pending PR](https://github.com/misoproject/d3.chart/pull/113) to fix this issue with d3.chart (also, the dependency on d3.chart is likely to be removed in a later version of d3.compose).### Release
(With all changes merged to master and on master branch)
1. `npm version {patch|minor|major|version}`
2. `npm publish`### Docs
1. On master, run `npm run docs`
2. Switch to `gh-pages` branch
3. Navigate to `_tasks` directory (`cd _tasks`)
4. (`npm install` _tasks, if necessary)
5. Run docs task `npm run docs`
6. Navigate back to root
7. View site with `bundle exec jekyll serve`Note: For faster iteration, create a separate clone, switch to `gh-pages` branch, set `docs_path` environment variable to original clone (e.g. Windows: `SET docs_path=C:\...\d3.compose\_docs\`), and then run steps 3-6.