private void prepareChart() { Resources res = this.getResources(); ChartPalette customPalette = chart.getPalette().clone(); PaletteEntry entry = customPalette.getEntry(ChartPalette.BAR_FAMILY, 0); entry.setStrokeWidth(Util.getDimen(context, TypedValue.COMPLEX_UNIT_DIP, 1)); entry.setFill(0xff3E3E3E); entry.setStroke(Color.WHITE); chart.setPalette(customPalette); CategoricalAxis horizontalAxis = new CategoricalAxis(this.context); horizontalAxis.setLabelMargin(20); chart.setHorizontalAxis(horizontalAxis); horizontalAxis.setLineThickness(res.getDimension(R.dimen.onedp)); horizontalAxis.setLineColor(0xff66B3D4); LinearAxis verticalAxis = new LinearAxis(this.context); verticalAxis.setMinimum(-30); verticalAxis.setMaximum(10); verticalAxis.setMajorStep(10); verticalAxis.setShowLabels(false); verticalAxis.setHorizontalLocation(AxisHorizontalLocation.RIGHT); chart.setVerticalAxis(verticalAxis); verticalAxis.setTickColor(Color.TRANSPARENT); verticalAxis.setLineColor(Color.TRANSPARENT); RangeBarSeries barSeries = new RangeBarSeries(this.context); barSeries.setShowLabels(true); barSeries.setHighBinding( new GenericDataPointBinding<DataClass, Float>( new Function<DataClass, Float>() { @Override public Float apply(DataClass argument) { return argument.value; } })); barSeries.setLowBinding( new GenericDataPointBinding<DataClass, Float>( new Function<DataClass, Float>() { @Override public Float apply(DataClass argument) { return argument.value2; } })); barSeries.setCategoryBinding( new GenericDataPointBinding<DataClass, String>( new Function<DataClass, String>() { @Override public String apply(DataClass argument) { return argument.category; } })); LabelRenderer seriesLabelRenderer = new LabelRenderer(res, barSeries); barSeries.setLabelRenderer(seriesLabelRenderer); this.chart.getSeries().add(barSeries); CartesianChartGrid grid = new CartesianChartGrid(this.context); chart.setGrid(grid); grid.setMajorYLinesRenderMode(GridLineRenderMode.INNER_AND_LAST); grid.setLineThickness(res.getDimension(R.dimen.onedp)); grid.setLineColor(Color.WHITE); grid.setMajorLinesVisibility(GridLineVisibility.Y); grid.setStripLinesVisibility(GridLineVisibility.Y); ObservableCollection<Paint> yBrushes = grid.getYStripeBrushes(); yBrushes.clear(); Paint paint = new Paint(); paint.setColor(0xb27ECCED); yBrushes.add(paint); paint = new Paint(); paint.setColor(0xb286EBD7); yBrushes.add(paint); paint = new Paint(); paint.setColor(0xb29DF5B7); yBrushes.add(paint); paint = new Paint(); paint.setColor(0xb2C2EB95); yBrushes.add(paint); chart.setChartPadding(0, 0, 0, 100); AnnotationRenderer renderer = new AnnotationRenderer(); for (int i = -20; i <= 10; i += 10) { CartesianCustomAnnotation degreeAnnotation = new CartesianCustomAnnotation(this.context); degreeAnnotation.setContentRenderer(renderer); degreeAnnotation.setContent(Integer.toString(i) + "\u00b0"); degreeAnnotation.setHorizontalAxis(horizontalAxis); degreeAnnotation.setVerticalAxis(verticalAxis); degreeAnnotation.setHorizontalValue("22:00"); degreeAnnotation.setVerticalValue((double) i); chart.getAnnotations().add(degreeAnnotation); } }