1. Android 系统上一款开源的图表库
1. MPAndroidChart
MPAndroidChart 是 Android 系统上一款开源的图表库。目前提供线图和饼图,支持选择、缩放和拖放。
一个可以拖动缩放的图表库,包含曲线图、直方图、饼状图,其中直方图支持3d效果。
该库的可扩展性强,代码相对规范,最近一次更新有很大改进,如果不喜欢AChartEngine的过于复杂可以考虑在此库的基础上开发自己的图表类。
2. MPAndroidChart 核心特性
-
轴缩放(触摸手势,轴分开或两指缩放)
-
拖动(触摸手势)
-
手指画(画值为图的触摸手势)
-
值的高亮显示(与可定制的弹出视图)
-
图表保存到SD卡(如图像,或作为。txt文件)
-
读取txt文件图表数据。
-
预定义的颜色模板
-
图例(自动生成的,可定制的)
-
标签(X和Y轴,可定制的)
-
动画(建立动画,在X和Y轴)
-
限制线(提供额外的信息,最大值,……)
-
完全可定制的(绘画颜料,字体,颜色,背景,图例,手势,虚线。
3. MPAndroidChart 使用例子:
以piechart(饼状图)为例介绍使用方法:
(1)在xml布局文件之中:
1 <com.github.mikephil.charting.charts.PieChart 2 android:id="@+id/spread_pie_chart" 3 android:layout_width="match_parent" 4 android:layout_height="320dip" />
(2)Activity中的初始化:
1 ColorTemplate mCt; 2 mCt = new ColorTemplate(); 3 mCt.addDataSetColors(ColorTemplate.PASTEL_COLORS, this); 4 mChart = (PieChart) headView.findViewById(R.id.spread_pie_chart); 5 mChart.setColorTemplate(mCt); 6 mChart.setDescription(""); 7 mChart.setHoleRadius(30f); 8 mChart.setTransparentCircleRadius(0f); 9 mChart.setCenterTextSize(18f); 10 mChart.setDrawXValues(true); 11 mChart.setUsePercentValues(true); 12 mChart.setDrawLegend(false); 13 // space between slices 14 mChart.setSliceSpace(1f); 15 mChart.setDrawHoleEnabled(false); 16 mChart.setTouchEnabled(false);
(3)数据填充
1 ArrayList<Entry> yVals = new ArrayList<Entry>(); 2 ArrayList<String> xVals = new ArrayList<String>(); 3 for (int i = 0; i < listDatas.size(); i++) { 4 yVals.add(new Entry((float)listDatas.get(i).getProvinceCount(), i)); 5 xVals.add(listDatas.get(i).getProvinceName()); 6 } 7 DataSet set1 = new DataSet(yVals, "Content"); 8 ArrayList<DataSet> dataSets = new ArrayList<DataSet>(); 9 dataSets.add(set1); 10 ChartData data = new ChartData(xVals, dataSets); 11 mChart.setData(data);
其中listData为自己项目中的数据源。
4. MPAndroidChart开源库地址:
https://github.com/PhilJay/MPAndroidChart