diff --git a/src/abstract-chart.js b/src/abstract-chart.js index 8c5a1609..f1d699aa 100644 --- a/src/abstract-chart.js +++ b/src/abstract-chart.js @@ -9,6 +9,8 @@ import { } from 'react-native-svg' class AbstractChart extends Component { + calcScaler = data => (Math.max(...data) - Math.min(...data)) || 1 + renderHorizontalLines = config => { const { count, width, height, paddingTop, paddingRight } = config return [...new Array(count)].map((_, i) => { @@ -39,7 +41,7 @@ class AbstractChart extends Component { y={(height * 3 / 4) - ((height - paddingTop) / count * i) + 12} fontSize={12} fill={this.props.chartConfig.color(0.5)} - >{count === 1 ? data[0].toFixed(2) : (((Math.max(...data) - Math.min(...data)) / (count - 1)) * i + Math.min(...data)).toFixed(2)} + >{count === 1 ? data[0].toFixed(2) : ((this.calcScaler(data) / (count - 1)) * i + Math.min(...data)).toFixed(2)} ) }) diff --git a/src/bar-chart.js b/src/bar-chart.js index fd188e6e..fb4419be 100644 --- a/src/bar-chart.js +++ b/src/bar-chart.js @@ -12,7 +12,7 @@ class BarChart extends AbstractChart { renderBars = config => { const { data, width, height, paddingTop, paddingRight } = config return data.map((x, i) => { - const barHeight = height / 4 * 3 * ((x - Math.min(...data)) / (Math.max(...data) - Math.min(...data))) + const barHeight = height / 4 * 3 * ((x - Math.min(...data)) / this.calcScaler(data)) const barWidth = 32 return ( { const { data, width, height, paddingTop, paddingRight } = config return data.map((x, i) => { - const barHeight = height / 4 * 3 * ((x - Math.min(...data)) / (Math.max(...data) - Math.min(...data))) + const barHeight = height / 4 * 3 * ((x - Math.min(...data)) / this.calcScaler(data)) return ( (Math.max(...data) - Math.min(...data)) || 1 renderDots = config => { const { data, width, height, paddingTop, paddingRight } = config