How to set colors in MPAndroidChart?

Alexandre picture Alexandre · Apr 22, 2015 · Viewed 18.8k times · Source

I'm using MPChartlib for a basic "Barchart" (3 bars and values between 0 and 100).

the background of the app is dark so I'd like to put the text in white but when I set the text with color code "FFFFFF" in chart_color stored in string.xml but the text appear in dark blue.

   //Axe X
   XAxis x = barchart.getXAxis();
   x.setPosition(XAxisPosition.BOTTOM);
   x.setTextColor(R.color.chart_color);
   x.setAxisLineColor(R.color.chart_color);


   // Design
   barchart.setDragEnabled(false);
   barchart.setDrawGridBackground(false);
   barchart.setTouchEnabled(false);
   barchart.setHighlightEnabled(false);
   barchart.setMaxVisibleValueCount(101);
   barchart.setDescription(null);
   barchart.setGridBackgroundColor(R.color.chart_color);

   barchart.invalidate(); // refresh

   //Axe Y
   barchart.getAxisLeft().setAxisMaxValue(100);
   barchart.getAxisLeft().setDrawTopYLabelEntry(true);
   barchart.getAxisLeft().setDrawAxisLine(false);
   barchart.getAxisLeft().setDrawGridLines(false);
   barchart.getAxisLeft().setAxisLineColor(R.color.chart_color);
   barchart.getAxisLeft().setTextColor(R.color.chart_color);

   barchart.getAxisRight().setAxisMaxValue(100);
   barchart.getAxisRight().setDrawTopYLabelEntry(true);
   barchart.getAxisRight().setAxisLineColor(R.color.chart_color);
   barchart.getAxisRight().setTextColor(R.color.chart_color);

I tried lots of things and research but couldn't find the issue, does the lib doesn't use the same kind of color code or something ?

Thanks for your help, Alex

Answer

Philipp Jahoda picture Philipp Jahoda · Apr 22, 2015

You are passing the resource id to the library, not the actual color.

Use this to get the color:

    int color = ContextCompat.getColor(context, R.color.chart_color);

    LineDataSet dataSet = ...;
    dataSet.setColor(color);

You can also find this in the documentation.