lucify-negative-bar-chart-range-selector
v0.5.1
Published
A React component that shows a negative/positive bar chart in which you can select a range of bars
Downloads
19
Maintainers
Readme
A selectable positive-negative bar chart React component
A controlled bar chart React component that shows positive and negative bars and that allows users to select a range of bars. Built using React and D3.js.
This is a pre-release of a package belonging to the Lucify platform. It has been published to satisfy dependencies of other packages. Any APIs may change without notice.
Installation
Add lucify-negative-bar-chart-range-selector
along with its dependencies (React.js and
D3.js) to your project's dependencies:
$ npm install react d3 lucify-negative-bar-chart-range-selector --save
Require it in your Javascript:
ES5
var LucifyBarChartRangeSelector = require('lucify-negative-bar-chart-range-selector').default;
ES6
import LucifyBarChartRangeSelector from 'lucify-negative-bar-chart-range-selector';
Now you can use it like any other React component.
Props
data
(required): The array of data objects. Has the following format:
[ { pos: 4, neg: 30, }, { pos: 28, neg: 10, }, { pos: 2, neg: 11, }, { pos: 2, neg: 19, }, { pos: 5, neg: 14, }, { pos: 5, neg: 19, }, { pos: 8, neg: 30, }, { pos: 5, neg: 18, } ];
- `selectedRange`: An array of two integers that denote the indices of the
selected range.
- `height`: The height of the component in pixels. Default: `160`
- `width`: The width of the component in pixels. Default: `1000`
- `margin`: An object with `top`, `bottom`, `left` and `right` properties that
denote internal margins for the chart.
Default: `{ top: 5, right: 2, bottom: 20, left: 10 }`
bars. The first member of each array is a string of the `key` property of the
bar, and the second member of the array is a string of the fill color.
- `onChange`: The function that should be called when the selection range
changes. Is passed a two-member array that includes the extent of the
selection in based on the `key` value of the bar groups.
- `xTickFormat`: Function that formats x axis tick labels. Is passed the index and data item.
- `negativeColor`: Color for negative bars. Defaults to 'red'.
- `positiveColor`: Color for positive bars. Defaults to 'green'.
- `yTickFormat`: Function that formats y axis tick labels.
- `xTickValues`: An array of the values that should be displayed on the x axis.
- `rangeFormat`: Function that formats the x axis labels when selecting a range.
Default: the identity function
- `onMouseOver`: Function to be called when the user hovers on a bar group. Is
passed an object parameter that contains the `index` (key value of the group)
and `value` (total value of the group) properties.
- `onMouseLeave`: Function to be called when the user no longer hovers on a bar
group.
- `incompleteDataIndices`: An array of the indices of the bar groups that should
be displayed with a thatched pattern. Useful for indicating if some data is
incomplete. Default: `[]`
## Development
Build the Javascript files into `lib/` with:
```shell
$ npm run build
Or build the development version and start watching for changes with:
$ npm run dev
To serve the example page on port 3000 and see changes live, start Gulp:
$ gulp
Then point your browser to http://localhost:3000/
Developing as part of a project
To develop this component in tandem with a parent project using npm link
,
first link this project to the parent project:
$ cd path_to_this_project
$ npm link
$ cd path_to_parent_project
$ npm link lucify-negative-bar-chart-range-selector
Then link the parent project's React folder to this project:
$ cd path_to_parent_project
$ cd node_modules/react
$ npm link
$ cd path_to_this_project
$ npm link react
This is needed in order to prevent React from being loaded twice.
Note that if you do not use Webpack to build your parent project, the
development build will likely not work. You can build the production version
while watching for changes by running node_modules/.bin/webpack -p --watch
.