android开源图表库MPAndroidChart(曲线图、直方图、饼状图)
meisen999
9年前
一个可以拖动缩放的图表库,包含曲线图、直方图、饼状图,其中直方图支持3d效果。
该库的可扩展性强,代码相对规范,最近一次更新有很大改进,如果不喜欢AChartEngine的过于复杂可以考虑在此库的基础上开发自己的图表类。
linechart
填充式lineChart
单条线的LineChart
BarChart2D
BarChart3D
PieChart
ScatterChart
以piechart为例介绍使用方法:
xml中
<com.github.mikephil.charting.charts.PieChart android:id="@+id/spread_pie_chart" android:layout_width="match_parent" android:layout_height="320dip" />
activity中
初始化
ColorTemplate mCt; mCt = new ColorTemplate(); mCt.addDataSetColors(ColorTemplate.PASTEL_COLORS, this); mChart = (PieChart) headView.findViewById(R.id.spread_pie_chart); mChart.setColorTemplate(mCt); mChart.setDescription(""); mChart.setHoleRadius(30f); mChart.setTransparentCircleRadius(0f); mChart.setCenterTextSize(18f); mChart.setDrawXValues(true); mChart.setUsePercentValues(true); mChart.setDrawLegend(false); // space between slices mChart.setSliceSpace(1f); mChart.setDrawHoleEnabled(false); mChart.setTouchEnabled(false);
数据
ArrayList<Entry> yVals = new ArrayList<Entry>(); ArrayList<String> xVals = new ArrayList<String>(); for (int i = 0; i < listDatas.size(); i++) { yVals.add(new Entry((float)listDatas.get(i).getProvinceCount(), i)); xVals.add(listDatas.get(i).getProvinceName()); } DataSet set1 = new DataSet(yVals, "Content"); ArrayList<DataSet> dataSets = new ArrayList<DataSet>(); dataSets.add(set1); ChartData data = new ChartData(xVals, dataSets); mChart.setData(data);
其中listData为自己项目中的数据源。
项目地址:https://github.com/PhilJay/MPAndroidChart
注:关于图表库现在有了更好的项目hellocharts,见 http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1107/1930.html