This chapter covers the basic setup for using this library.
Video Tutorials
If you are interested in detailed video tutorials (📹 | 🖥️), have a look at the downloads. These tutorials made by the developer of the library explain e.g. how to add the cradle dependency for MPAndroidChart to your project. Source code is also included.
Add dependency
As a first step, add a dependency to this library to your project. How to do that is described here or showcased in detail in a video tutorial here. Gradle is the recommended way of using this library as a dependency.
Creating the View
For using a LineChart, BarChart, ScatterChart, CandleStickChart, PieChart, BubbleChart or RadarChart
, define it in .xml:
<com.github.mikephil.charting.charts.LineChart android:id="@+id/chart" android:layout_width="match_parent" android:layout_height="match_parent" />
And then retrieve it from your Activity
, Fragment
or whatever:
// in this example, a LineChart is initialized from xml LineChart chart = (LineChart) findViewById(R.id.chart);
or create it in code (and then add it to a layout):
// programmatically create a LineChart LineChart chart = new LineChart(Context); // get a layout defined in xml RelativeLayout rl = (RelativeLayout) findViewById(R.id.relativeLayout); rl.add(chart); // add the programmatically created chart
Adding data
After you have an instance of your chart, you can create data and add it to the chart. This example uses the LineChart
, for which the Entry
class represents a single entry in the chart with x- and y-coordinate. Other chart types, such as BarChart
use other classes (e.g. BarEntry
) for that purpose.
To add data to your chart, wrap each data object you have into an Entry
object, like below:
YourData[] dataObjects = ...; List<Entry> entries = new ArrayList<Entry>(); for (YourData data : dataObjects) { // turn your data into Entry objects entries.add(new Entry(data.getValueX(), data.getValueY())); }
As a next step, you need to add the List<Entry>
you created to a LineDataSet
object. DataSet
objects hold data which belongs together, and allow individual styling of that data. The below used “Label” has only a descriptive purpose and shows up in the Legend
, if enabled.
LineDataSet dataSet = new LineDataSet(entries, "Label"); // add entries to dataset dataSet.setColor(...); dataSet.setValueTextColor(...); // styling, ...
As a last step, you need to add the LineDataSet
object (or objects) you created to a LineData
object. This object holds all data that is represented by a Chart
instance and allows further styling. After creating the data object, you can set it to the chart and refresh it:
LineData lineData = new LineData(dataSet); chart.setData(lineData); chart.invalidate(); // refresh
Please consider the scenario above a very basic setup. For a more detailed explanation please refer to the setting data section, which explains how to add data to various Chart
types based on examples.
Styling
For information about settings & styling of the chart surface and data, visit the general settings & styling section. Regarding more specific styling & settings for individual chart types, please have a look at the specific settings & styling wiki page.