android開源圖表庫MPAndroidChart(曲線圖、直方圖、餅狀圖)
阿新 • • 發佈:2019-01-24
一個可以拖動縮放的圖表庫,包含曲線圖、直方圖、餅狀圖,其中直方圖支援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