react-native-d3-charts
react-native-d3-charts is a cross platform chart library built with d3js and react-native-svg. Currently there is a line-chart, circular progress chart, and pie-chart.
Installation
To install the library to your react-native project run the following commands:
npm install react-native-d3-charts --save
react-native link react-native-svg
Usage & Options
Line Chart
Options:
Prop | Type | Default | Definition |
---|---|---|---|
size | object | {width: ,height: 320} | width and height of the chart |
data | array | [] | the data object explained below |
showLegend | bool | true | a flag to show/hide the legend of the chart |
title | string | '' | the title of the chart |
The structure of the data object:
Prop | Type | Default | Definition |
---|---|---|---|
value | number | - | the value of the data object |
startColor | string | - | the start color of the gradient for the related data |
endColor | string | - | the end color of the gradient for the related data |
label | string | - | the definition/label of the data |
labelStyle | object | {} | style object for the label |
Example:
;;; type Props = {};<Props> state= chartData: value: 6141 startColor: "#7CB5EC" endColor: "#7CB5EC" label: "Chrome" labelStyle: {} value: 1184 startColor: "#434348" endColor: "#434348" label: "Internet Explorer" labelStyle: {} value: 1085 startColor: "#90ED7D" endColor: "#90ED7D" label: "Firefox" labelStyle: {} value: 467 startColor: "#F7A25D" endColor: "#F7A25D" label: "Edge" labelStyle: {} value: 418 startColor: "#8085E9" endColor: "#8085E9" label: "Safari" labelStyle: {} value: 705 startColor: "#F15C80" endColor: "#F15C80" label: "Other" labelStyle: {} { return <ScrollView contentContainerStyle=stylescontainer> <PieChart size=height: 300 width: 300 data=thisstatechartData title="Browser market shares in January, 2018" /> </ScrollView> ; } const styles = StyleSheet;
For running the example application
To run the example application (from a cloned repo):
cd example
npm i
react-native link react-native-svg
react-native run-ios
# or
react-native run-android
Todo
The next steps:
- Add animations to the charts
- More axis controls (to control scale)
- Events
- Improve the documentation
- Bug fixing, unit testing, cleanup