Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Source/Charts/Charts/LineChartView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,12 @@ open class LineChartView: BarLineChartViewBase, LineChartDataProvider

open var lineData: LineChartData? { return data as? LineChartData }
}

extension LineChartView {

public final func setChartMinMaxYValues(chartYMin: Double, chartYMax: Double) {
let leftAxis = self.leftAxis
leftAxis.axisMaximum = chartYMax
leftAxis.axisMinimum = chartYMin
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,24 @@ open class LineScatterCandleRadarChartDataSet: BarLineScatterCandleBubbleChartDa

/// Enables / disables the vertical highlight-indicator. If disabled, the indicator is not drawn.
open var drawVerticalHighlightIndicatorEnabled = true

/// Enables / disables the horizontal radar highlight-indicator. If disabled, the indicator is not drawn.
open var drawHorizontalHighlightRadarIndicatorEnabled = true

/// Enables / disables the vertical radar highlight-indicator. If disabled, the indicator is not drawn.
open var drawVerticalHighlightRadarIndicatorEnabled = true

/// `true` if horizontal highlight indicator lines are enabled (drawn)
open var isHorizontalHighlightIndicatorEnabled: Bool { return drawHorizontalHighlightIndicatorEnabled }

/// `true` if vertical highlight indicator lines are enabled (drawn)
open var isVerticalHighlightIndicatorEnabled: Bool { return drawVerticalHighlightIndicatorEnabled }

/// `true` if horizontal highlight radar indicator lines are enabled (drawn)
open var isHorizontalHighlightRadarIndicatorEnabled: Bool { return drawHorizontalHighlightRadarIndicatorEnabled }

/// `true` if vertical highlight radar indicator lines are enabled (drawn)
open var isVerticalHighlightRadarIndicatorEnabled: Bool { return drawVerticalHighlightRadarIndicatorEnabled }

/// Enables / disables both vertical and horizontal highlight-indicators.
/// :param: enabled
Expand All @@ -37,6 +49,15 @@ open class LineScatterCandleRadarChartDataSet: BarLineScatterCandleBubbleChartDa
drawHorizontalHighlightIndicatorEnabled = enabled
drawVerticalHighlightIndicatorEnabled = enabled
}

/// Enables / disables both vertical and horizontal radar highlight-indicators.
/// :param: enabled
open func setDrawHighlightRadarIndicators(_ enabled: Bool) {
drawHorizontalHighlightIndicatorEnabled = enabled
drawVerticalHighlightIndicatorEnabled = enabled
drawHorizontalHighlightRadarIndicatorEnabled = enabled
drawVerticalHighlightRadarIndicatorEnabled = enabled
}

// MARK: NSCopying

Expand All @@ -45,6 +66,8 @@ open class LineScatterCandleRadarChartDataSet: BarLineScatterCandleBubbleChartDa
let copy = super.copy(with: zone) as! LineScatterCandleRadarChartDataSet
copy.drawHorizontalHighlightIndicatorEnabled = drawHorizontalHighlightIndicatorEnabled
copy.drawVerticalHighlightIndicatorEnabled = drawVerticalHighlightIndicatorEnabled
copy.drawHorizontalHighlightRadarIndicatorEnabled = drawHorizontalHighlightRadarIndicatorEnabled
copy.drawVerticalHighlightRadarIndicatorEnabled = drawVerticalHighlightRadarIndicatorEnabled
return copy
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,30 @@ public protocol LineScatterCandleRadarChartDataSetProtocol: BarLineScatterCandle

/// Enables / disables the vertical highlight-indicator. If disabled, the indicator is not drawn.
var drawVerticalHighlightIndicatorEnabled: Bool { get set }

/// Enables / disables the horizontal radar highlight-indicator. If disabled, the indicator is not drawn.
var drawHorizontalHighlightRadarIndicatorEnabled: Bool { get set }

/// Enables / disables the vertical radar highlight-indicator. If disabled, the indicator is not drawn.
var drawVerticalHighlightRadarIndicatorEnabled: Bool { get set }

/// `true` if horizontal highlight indicator lines are enabled (drawn)
var isHorizontalHighlightIndicatorEnabled: Bool { get }

/// `true` if vertical highlight indicator lines are enabled (drawn)
var isVerticalHighlightIndicatorEnabled: Bool { get }

/// `true` if horizontal highlight radar indicator lines are enabled (drawn)
var isHorizontalHighlightRadarIndicatorEnabled: Bool { get }

/// `true` if vertical highlight radar indicator lines are enabled (drawn)
var isVerticalHighlightRadarIndicatorEnabled: Bool { get }

/// Enables / disables both vertical and horizontal highlight-indicators.
/// :param: enabled
func setDrawHighlightIndicators(_ enabled: Bool)

/// Enables / disables both vertical and horizontal radar highlight-indicators.
/// :param: enabled
func setDrawHighlightRadarIndicators(_ enabled: Bool)
}
33 changes: 33 additions & 0 deletions Source/Charts/Renderers/LineScatterCandleRadarRenderer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

import Foundation
import CoreGraphics
import UIKit

@objc(LineScatterCandleRadarChartRenderer)
open class LineScatterCandleRadarRenderer: BarLineScatterCandleBubbleRenderer
Expand All @@ -32,6 +33,22 @@ open class LineScatterCandleRadarRenderer: BarLineScatterCandleBubbleRenderer
if set.isVerticalHighlightIndicatorEnabled
{
context.beginPath()

if set.isVerticalHighlightRadarIndicatorEnabled {
let colorTop = UIColor.white.cgColor
let colorBottom = UIColor.clear.cgColor

var gradientOne = CGGradient(colorsSpace: .none, colors: [colorTop, colorBottom] as CFArray, locations: [0.0, 1.0])!
let startPointOne = CGPoint(x: point.x, y: point.y)
let endPointOne = CGPoint(x: point.x, y: viewPortHandler.contentBottom)
context.drawRadialGradient(gradientOne, startCenter: startPointOne, startRadius: 0.5, endCenter: endPointOne, endRadius: 0.5, options: .drawsAfterEndLocation)

var gradientTwo = CGGradient(colorsSpace: .none, colors: [colorBottom, colorTop] as CFArray, locations: [0.0, 1.0])!
let startPointTwo = CGPoint(x: point.x, y: viewPortHandler.contentTop)
let endPointTwo = CGPoint(x: point.x, y: point.y)
context.drawRadialGradient(gradientTwo, startCenter: startPointTwo, startRadius: 0.5, endCenter: endPointTwo, endRadius: 0.5, options: .drawsBeforeStartLocation)
}

context.move(to: CGPoint(x: point.x, y: viewPortHandler.contentTop))
context.addLine(to: CGPoint(x: point.x, y: viewPortHandler.contentBottom))
context.strokePath()
Expand All @@ -41,6 +58,22 @@ open class LineScatterCandleRadarRenderer: BarLineScatterCandleBubbleRenderer
if set.isHorizontalHighlightIndicatorEnabled
{
context.beginPath()

if set.isHorizontalHighlightRadarIndicatorEnabled {
let colorTop = UIColor.white.cgColor
let colorBottom = UIColor.clear.cgColor

var gradientOne = CGGradient(colorsSpace: .none, colors: [colorBottom, colorTop] as CFArray, locations: [0.0, 1.0])!
let startPointOne = CGPoint(x: viewPortHandler.contentLeft, y: point.y)
let endPointOne = CGPoint(x: point.x, y: point.y)
context.drawRadialGradient(gradientOne, startCenter: startPointOne, startRadius: 0.5, endCenter: endPointOne, endRadius: 0.5, options: .drawsBeforeStartLocation)

var gradientTwo = CGGradient(colorsSpace: .none, colors: [colorBottom, colorTop] as CFArray, locations: [0.0, 1.0])!
let startPointTwo = CGPoint(x: viewPortHandler.contentRight, y: point.y)
let endPointTwo = CGPoint(x: point.x, y: point.y)
context.drawRadialGradient(gradientTwo, startCenter: startPointTwo, startRadius: 0.5, endCenter: endPointTwo, endRadius: 0.5, options: .drawsBeforeStartLocation)
}

context.move(to: CGPoint(x: viewPortHandler.contentLeft, y: point.y))
context.addLine(to: CGPoint(x: viewPortHandler.contentRight, y: point.y))
context.strokePath()
Expand Down