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:

        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(;

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(;
    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.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.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.


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.