最近做的项目里用到了图表控件MPAndroidChart,看了github的英文文档,干脆把它翻译出来。
一、准备开始
本章涵盖了使用这个库的基本设置。
添加依赖关系
添加这个库的依赖到你的项目。如何操作已经在repository的usage里写明。推荐使用Gradle来添加这个库的依赖。
创建View
在xml中定义LineChart,BarChart,ScatterChart,CandleStickChart,PieChart, BubbleChart or RadarChart:
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/chart"
android:layout_width="match_parent"
android:layout_height="match_parent" />
然后从你的Activity、Fragment或者其他什么中取到她:
// in this example, a LineChart is initialized from xml
LineChart chart = (LineChart) findViewById(R.id.chart);
或者创建它在代码中(然后增加它到一个布局中):
// 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
添加数据
在获得图表的实例后,你就可以创建数据并将其添加到图表当中。下面的例子使用了LineChart,包含x和y坐标的Entry类是图表的单一入口。其他图表类型,如柱形图表使用其他类(例如BarEntry)。
将数据添加到你的图表,需要把每个数据对象包装成一个Entry对象,就像下面这样子:
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()));
}
下一步,你需要将你创建的List<Entry> 添加到LineDataSet对象中。DataSet对象保存数据并允许个人风格的数据。如果enabled,下面用“标签”只有一个描述性的目的并且出现在图例(Legend)中。
LineDataSet dataSet = new LineDataSet(entries, "Label"); // add entries to dataset
dataSet.setColor(...);
dataSet.setValueTextColor(...); // styling, ...
最后一步,你需要将你创建的LineDataSet对象添加LineData对象中。这个对象持有所有数据,这些数据在图标中被显示出来,并且允许更进一步的样式定制。创建数据对象后,你可以将它设置到图表中,然后刷新:
LineData lineData=new LineData(dataSet);
chart.setData(lineData);
chart.invalidate(); // refresh
请认真思考上述场景的基本设置。更详细解释请参阅setting data部分,这也解释了如何将数据添加到各种基于例子的图表类型。
样式
想了解更多关于图表和数据的settings & styling,请访问general settings & styling部分。关于更具体的样式和设置的图表类型,请看看 specific settings & styling wiki页面。