MPAndroidChart


該庫的可擴展性強,代碼相對規范,最近一次更新有很大改進,如果不喜歡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為自己項目中的數據源。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM