Skip to content

Getting Started

Philipp Jahoda edited this page Aug 6, 2016 · 34 revisions

This chapter covers the basic setup for using this library.

Add dependency

As a first step, add a dependency to this library to your project. How to to that is described in the #Usage section of this repository.

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.

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) {
    entries.add(new Entry(data.getX(), data.getY()); // turn your data into Entry objects
}

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.setData(lineData);
chart.invalidate(); // refresh

Refreshing

  • invalidate(): Calling this method on the chart will refresh (redraw) it. This is needed in order to make changes performed on the chart take effect.
  • notifyDataSetChanged(): Lets the chart know it's underlying data has changed and performs all necessary recalculations (offsets, legend, maxima, minima, ...). This is needed especially when adding data dynamically.

Logging

  • setLogEnabled(boolean enabled): Setting this to true will activate chart logcat output. Enabling this is bad for performance, keep disabled if not necessary.

Styling

For information about settings & styling of the chart surface and data, visit the general styling section. For more specific styling & settings for individual chart types, please have a look at the specific chart settings wiki page.

The documentation has moved.

Clone this wiki locally