             let lineValues = valuesArray[lineIndex]
             
             for var i = 0; i < lineValues.count; ++i {
-                let value = lineValues[i] * yOffset
-                let point = CGPoint(x: leftLabelsWidth + CGFloat(i) * xOffset, y: frame.height - value)
+                let value = (maxValue - lineValues[i] - abs(minValue)) * yOffset
+                let point = CGPoint(x: leftLabelsWidth + CGFloat(i) * xOffset, y: value)
                 
                 if path.empty {
                     path.moveToPoint(point)

    private func drawLines() {
        
        let xOffset = calculateXoffset()
        let yOffset = calculateYoffset().offset
        
        for var lineIndex = 0; lineIndex < valuesArray.count; lineIndex++ {
            

    /**
     Calculate distance between Y values
     
     - returns: Tuple, which contains: offset - Offset between Y values, maxValue & minValue - maximum & minimum values
     */
    private func calculateYoffset() -> (offset: CGFloat, maxValue: CGFloat, minValue: CGFloat)  {
        var maxValue: CGFloat = valuesArray.first?.first ?? 0
        var minValue: CGFloat = valuesArray.first?.first ?? 0
        
