diff --git a/Charts/Classes/Charts/BarLineChartViewBase.swift b/Charts/Classes/Charts/BarLineChartViewBase.swift index 6f100fc3ae..9d20f32e95 100644 --- a/Charts/Classes/Charts/BarLineChartViewBase.swift +++ b/Charts/Classes/Charts/BarLineChartViewBase.swift @@ -217,11 +217,11 @@ public class BarLineChartViewBase: ChartViewBase, UIGestureRecognizerDelegate renderer?.drawHighlighted(context: context, indices: _indicesToHightlight) } - // Removes clipping rectangle - CGContextRestoreGState(context) - renderer!.drawExtras(context: context) + // Removes clipping rectangle + CGContextRestoreGState(context) + _xAxisRenderer.renderAxisLabels(context: context) _leftYAxisRenderer.renderAxisLabels(context: context) _rightYAxisRenderer.renderAxisLabels(context: context) diff --git a/Charts/Classes/Renderers/ChartYAxisRenderer.swift b/Charts/Classes/Renderers/ChartYAxisRenderer.swift index 981d4efa9b..8dfe45a8c7 100644 --- a/Charts/Classes/Renderers/ChartYAxisRenderer.swift +++ b/Charts/Classes/Renderers/ChartYAxisRenderer.swift @@ -230,6 +230,11 @@ public class ChartYAxisRenderer: ChartAxisRendererBase pt.x = fixedPosition pt.y += offset + if (pt.y > viewPortHandler.contentRect.height) + { + continue + } + ChartUtils.drawText(context: context, text: text, point: pt, align: textAlign, attributes: [NSFontAttributeName: labelFont, NSForegroundColorAttributeName: labelTextColor]) } } diff --git a/Charts/Classes/Renderers/ChartYAxisRendererHorizontalBarChart.swift b/Charts/Classes/Renderers/ChartYAxisRendererHorizontalBarChart.swift index 25abe7b80c..9c8debc8f8 100644 --- a/Charts/Classes/Renderers/ChartYAxisRendererHorizontalBarChart.swift +++ b/Charts/Classes/Renderers/ChartYAxisRendererHorizontalBarChart.swift @@ -150,7 +150,11 @@ public class ChartYAxisRendererHorizontalBarChart: ChartYAxisRenderer var labelFont = _yAxis.labelFont var labelTextColor = _yAxis.labelTextColor - for (var i = 0; i < _yAxis.entryCount; i++) + var labelWidth = _yAxis.requiredSize().width + + var modulus = Int(ceil((CGFloat(_yAxis.entryCount) * labelWidth) / (viewPortHandler.contentWidth * viewPortHandler.touchMatrix.a))) + + for (var i = 0; i < _yAxis.entryCount; i += modulus) { var text = _yAxis.getFormattedLabel(i) @@ -159,6 +163,11 @@ public class ChartYAxisRendererHorizontalBarChart: ChartYAxisRenderer return } + if (positions[i].x < viewPortHandler.contentRect.origin.x) + { + continue + } + ChartUtils.drawText(context: context, text: text, point: CGPoint(x: positions[i].x, y: fixedPosition - offset), align: .Center, attributes: [NSFontAttributeName: labelFont, NSForegroundColorAttributeName: labelTextColor]) } } diff --git a/Charts/Classes/Renderers/ChartYAxisRendererRadarChart.swift b/Charts/Classes/Renderers/ChartYAxisRendererRadarChart.swift index 7ec1a3cf98..1176650cf8 100644 --- a/Charts/Classes/Renderers/ChartYAxisRendererRadarChart.swift +++ b/Charts/Classes/Renderers/ChartYAxisRendererRadarChart.swift @@ -69,7 +69,19 @@ public class ChartYAxisRendererRadarChart: ChartYAxisRenderer } else { - var first = ceil(Double(yMin) / interval) * interval + var rawValue = Double(yMin) / interval + + var first: Double; + + // if raw value negative, we need to use floor rather than ceil + if (rawValue < 0) + { + first = floor(rawValue) * interval + } + else + { + first = ceil(Double(yMin) / interval) * interval + } if (first == 0.0) { // Fix for IEEE negative zero case (Where value == -0.0, and 0.0 == -0.0) @@ -104,6 +116,8 @@ public class ChartYAxisRendererRadarChart: ChartYAxisRenderer } _yAxis.axisMaximum = _yAxis.entries[_yAxis.entryCount - 1] + // set axisMinimum to be the minimum value. + _yAxis.axisMinimum = _yAxis.entries[0] _yAxis.axisRange = abs(_yAxis.axisMaximum - _yAxis.axisMinimum) } @@ -199,4 +213,4 @@ public class ChartYAxisRendererRadarChart: ChartYAxisRenderer CGContextRestoreGState(context) } -} \ No newline at end of file +}