| Index: packages/charted/lib/charts/cartesian_renderers/bar_chart_renderer.dart
|
| diff --git a/packages/charted/lib/charts/cartesian_renderers/bar_chart_renderer.dart b/packages/charted/lib/charts/cartesian_renderers/bar_chart_renderer.dart
|
| index 74e93cab0b0f37638dd650ceb19422559a6fa9b5..37f6dcf4efa613d1d08a51545982c9376096a2e6 100644
|
| --- a/packages/charted/lib/charts/cartesian_renderers/bar_chart_renderer.dart
|
| +++ b/packages/charted/lib/charts/cartesian_renderers/bar_chart_renderer.dart
|
| @@ -47,7 +47,7 @@ class BarChartRenderer extends CartesianRendererBase {
|
|
|
| var bars = new OrdinalScale()
|
| ..domain = new Range(series.measures.length).toList()
|
| - ..rangeRoundBands([0, dimensionScale.rangeBand]);
|
| + ..rangeRoundBands([0, (dimensionScale as OrdinalScale).rangeBand]);
|
|
|
| // Create and update the bar groups.
|
|
|
| @@ -95,15 +95,31 @@ class BarChartRenderer extends CartesianRendererBase {
|
| ? (d >= 0 ? scaled0 - scaledVal : scaledVal - scaled0)
|
| : (d >= 0 ? scaledVal - scaled0 : scaled0 - scaledVal);
|
| ht = ht - strokeWidth;
|
| - return (ht < 0) ? 0 : ht;
|
| +
|
| + // If bar would be scaled to 0 height but data is not 0, render bar
|
| + // at 1 pixel so user can see and hover over to see the data.
|
| + return (ht < 0) ? 1 : ht;
|
| };
|
| var getBarPos = (d) {
|
| var scaledVal = measureScale.scale(d).round();
|
| +
|
| + // If bar would be scaled to 0 height but data is not 0, reserve 1 pixel
|
| + // height plus strokeWidthOffset to position the bar.
|
| + if (scaledVal == scaled0) {
|
| + return verticalBars
|
| + ? d > 0
|
| + ? scaled0 - 1 - strokeWidthOffset
|
| + : scaled0 + strokeWidthOffset
|
| + : d > 0
|
| + ? scaled0 + strokeWidthOffset
|
| + : scaled0 - 1 - strokeWidthOffset;
|
| + }
|
| return verticalBars
|
| ? (d >= 0 ? scaledVal : scaled0) + strokeWidthOffset
|
| : (d >= 0 ? scaled0 : scaledVal) + strokeWidthOffset;
|
| };
|
| var buildPath = (d, int i, bool animate) {
|
| + // If data is null or 0, an empty path for the bar is returned directly.
|
| if (d == null || d == 0) return '';
|
| if (verticalBars) {
|
| var fn = d > 0 ? topRoundedRect : bottomRoundedRect;
|
|
|