private void drawBackground() {
        ctxBkg.clearRect(0, 0, width, height);
        sectionMinimum = Double.MAX_VALUE;
        sectionMaximum = Double.MIN_VALUE;
        double lowestSection  = Double.MAX_VALUE;
        for (Section section : getSkinnable().getSections()) {
            sectionMinimum = Math.min(sectionMinimum, section.getStart());
            sectionMaximum = Math.max(sectionMaximum, section.getStop());
            lowestSection  = Math.min(lowestSection, Math.abs(section.getStop() - section.getStart()));
        }
        ctxBkg.setStroke(Color.BLACK);
        ctxBkg.strokeRect(0, 0, width, height);

        heightFactor = height / (sectionMaximum - sectionMinimum);

        ctxBkg.save();
        ctxBkg.translate(0, sectionMinimum * heightFactor);

        ctxBkg.setFont(Font.font("Open Sans", FontWeight.NORMAL, (lowestSection * 0.8 * heightFactor)));
        for (int i = 0 ; i < getSkinnable().getSections().size() ; i++) {
            final Section SECTION = getSkinnable().getSections().get(i);
            ctxBkg.save();
            switch(i) {
                case 0: ctxBkg.setFill(getSkinnable().getSectionFill0()); break;
                case 1: ctxBkg.setFill(getSkinnable().getSectionFill1()); break;
                case 2: ctxBkg.setFill(getSkinnable().getSectionFill2()); break;
                case 3: ctxBkg.setFill(getSkinnable().getSectionFill3()); break;
                case 4: ctxBkg.setFill(getSkinnable().getSectionFill4()); break;
                case 5: ctxBkg.setFill(getSkinnable().getSectionFill5()); break;
                case 6: ctxBkg.setFill(getSkinnable().getSectionFill6()); break;
                case 7: ctxBkg.setFill(getSkinnable().getSectionFill7()); break;
                case 8: ctxBkg.setFill(getSkinnable().getSectionFill8()); break;
                case 9: ctxBkg.setFill(getSkinnable().getSectionFill9()); break;
            }
            ctxBkg.fillRect(0, height - SECTION.getStop() * heightFactor, width, Math.abs(SECTION.getStop() - SECTION.getStart()) * heightFactor);
            ctxBkg.restore();
        }
        if (getSkinnable().isSectionRangeVisible()) {
            for (int i = 0 ; i < getSkinnable().getSections().size() - 1 ; i++) {
                final Section SECTION = getSkinnable().getSections().get(i);
                ctxBkg.setFill(getSkinnable().getSeriesStroke());
                ctxBkg.setTextBaseline(VPos.CENTER);
                ctxBkg.fillText(SECTION.getStop() + getSkinnable().getUnit(), 0.02 * height, height - SECTION.getStop() * heightFactor);
            }
        }
        ctxBkg.restore();
    }