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

meisen999 9年前發布 | 7K 次閱讀 Android開發 移動開發

 一個可以拖動縮放的圖表庫,包含曲線圖、直方圖、餅狀圖,其中直方圖支持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


 本文由用戶 meisen999 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!