Seema Nagar
Seema Nagar

Reputation: 91

positive and negative value in bar-chart in android

i made bar-chart in android.The positive value in the Bar-Chart has been corrected and there is too negative value.Draw the positive values in the chart are correct but negative values are not draw or not fill the color .i don't know how to draw the bar-chart with negative value.anyone help me.

String[] titles = new String[] { "USER INPUTS" };
    List<double[]> x = new ArrayList<double[]>();
    x.add(new double[] { 1, 2, 3, 4, 5 });
    List<double[]> values = new ArrayList<double[]>();
    values.add(new double[] { 2, -3, 4, 3, -7 });
    dataset = new XYMultipleSeriesDataset();
    renderer = new XYMultipleSeriesRenderer();
    renderer.setChartTitle("USER INPUTS");
    renderer.setXTitle("X");
    renderer.setYTitle("Y");
    renderer.setXLabelsAlign(Align.RIGHT);
    renderer.setYLabelsAlign(Align.RIGHT);
    renderer.setXAxisMin(0);
    renderer.setXAxisMax(10);
    renderer.setYAxisMin(-40);
    renderer.setYAxisMax(40);
    renderer.setClickEnabled(false);
    renderer.setExternalZoomEnabled(false);
    renderer.setZoomButtonsVisible(true);
    renderer.setPanLimits(new double[] { 0, 5, 0, 100 });
    renderer.setZoomLimits(new double[] { 10, 20, 10, 40 });
    renderer.setShowGrid(true);

    renderer.setPanEnabled(false, false);
    renderer.setZoomEnabled(false, false);

    renderer.setBarSpacing(1.5);
    renderer.setLabelsColor(Color.BLUE);
    renderer.setAxisTitleTextSize(16);
    renderer.setChartTitleTextSize(20);
    renderer.setLabelsTextSize(15);
    renderer.setLegendTextSize(15);
    renderer.setMargins(new int[] { 20, 30, 15, 20 });
    renderer.setBackgroundColor(Color.GREEN);
    renderer.setMarginsColor(getResources().getColor(R.color.transparent));
    rendererSeries = new XYSeriesRenderer();
    rendererSeries.setColor(Color.GREEN);
    rendererSeries.setDisplayChartValues(true);
    renderer.addSeriesRenderer(rendererSeries);

    if (mChartView == null) {
        Log.d("Oncreate ", "if (mChartView == null)");
        mChartView = ChartFactory.getBarChartView(context,
                mDataset(titles, x, values), renderer, Type.DEFAULT);
        layoutBarGraph.addView(mChartView, new LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

    } else {
        // mChartView.repaint();
        Log.d("Oncreate ", "if (mChartView != null)");
    }

Upvotes: 1

Views: 2698

Answers (1)

Juan Aguilar Guisado
Juan Aguilar Guisado

Reputation: 1701

Maybe it's late but I hope it helps.

You have to set your YAxis property startAtZero to false.

See the code below:

//For me, AxisDependency.LEFT because I was using an horizontar-bar
 YAxis yAxis = mChart.getAxis(YAxis.AxisDependency.LEFT);
 yAxis.setStartAtZero(false);

Upvotes: 3

Related Questions