1. 程式人生 > >android開源圖表庫MPAndroidChart(曲線圖、直方圖、餅狀圖)

android開源圖表庫MPAndroidChart(曲線圖、直方圖、餅狀圖)

一個可以拖動縮放的圖表庫,包含曲線圖、直方圖、餅狀圖,其中直方圖支援3d效果。

該庫的可擴充套件性強,程式碼相對規範,最近一次更新有很大改進,如果不喜歡AChartEngine的過於複雜可以考慮在此庫的基礎上開發自己的圖表類。

linechart

填充式lineChart

單條線的LineChart

BarChart2D


BarChart3D

PieChart

ScatterChart

以piechart為例介紹使用方法:

xml中

1 2 3 4 <com.github.mikephil.charting.charts.PieChart
android:id="@+id/spread_pie_chart" android:layout_width="match_parent" android:layout_height="320dip" />

activity中

初始化

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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);

資料

1 2 3 4 5 6 7 8 9 10 11 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為自己專案中的資料來源。

注:關於圖表庫現在有了更好的專案hellocharts,見 http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1107/1930.html