这里使用的是2.1.5版本的插件包,有些功能还没有.
这里只是简单的实现图形,并没有什么高深的使用方法.
public class MainActivity extends AppCompatActivity {
private PieChart day_fragment_bar_chart;
private PieDataSet mPieDataSet;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
day_fragment_bar_chart =(PieChart) findViewById(R.id.day_fragment_bar_chart);//进行控件的绑定
/*PieChart圆饼图实现*/
day_fragment_bar_chart.setUsePercentValues(true); //设置为可以显示百分比————只是数值变成百分比形式,没有百分比符号
day_fragment_bar_chart.setDescription("环境因素"); //设置对这张图的描述
day_fragment_bar_chart.setDescriptionPosition(120,50); //设置描述的位置
ArrayList<Integer> colors=new ArrayList<>(); //设置colors的ArrayList
colors.add(Color.rgb(23,214,159)); //往其中添加颜色
colors.add(Color.rgb(245,166,35));
colors.add(Color.rgb(184,233,134));
colors.add(Color.rgb(184,155,134));new ArrayList<>(); //设置饼状图的条目,也就是添加数据.
pieEntries.add(new Entry(300f,0));
pieEntries.add(new Entry(200f,1));
pieEntries.add(new Entry(100f,2));
pieEntries.add(new Entry(50f,3));
mPieDataSet=new PieDataSet(pieEntries,""); //将数据添加好后,先传入DataSet中
mPieDataSet.setValueFormatter(new PercentFormatter()); //添加百分比符号
mPieDataSet.setColors(colors); //这句一定要放在new PieDataSet后面,不然获取不到mPieDataset; mPieDataSet.setValueTextSize(18f); //设置图里字体的大小 day_fragment_bar_chart.setHoleRadius(0); //设置为实心圆 ArrayList<String> name=new ArrayList<>(); //设置X轴的名称 name.add("Co2"); name.add("PM25"); name.add("Light"); name.add("Humidy"); PieData pieData=new PieData(name,mPieDataSet); //将name和pieDataSet的数据传入pieData中. day_fragment_bar_chart.setData(pieData); //视图和数据绑定
以下是剩下两个图实现的代码,区别只是在传入数据时的泛型不同
,还有在声明控件时的类型有所不同而已.
/*BarChart柱状图实现*/ // ArrayList<Integer> colors=new ArrayList<>(); // colors.add(Color.rgb(133,245,79)); // colors.add(Color.rgb(235,127,131)); // colors.add(Color.rgb(153,165,179)); // colors.add(Color.rgb(233,125,139)); // ArrayList<BarEntry> barEntries=new ArrayList<>(); // barEntries.add(new BarEntry(66f,0)); // barEntries.add(new BarEntry(64f,1)); // barEntries.add(new BarEntry(11f,2)); // barEntries.add(new BarEntry(35f,3)); // BarDataSet barDataSet=new BarDataSet(barEntries,"data"); // barDataSet.setColors(colors); // day_fragment_bar_chart.setVerticalScrollBarEnabled(false); // day_fragment_bar_chart.setPinchZoom(false); // // day_fragment_bar_chart.setDrawBarShadow(false); // // day_fragment_bar_chart.setDrawGridBackground(false); // ArrayList<String> xData=new ArrayList<>(); // xData.add("huanjing"); // xData.add("CO2"); // xData.add("light"); // xData.add("pm25"); // BarData datat=new BarData(xData,barDataSet); // day_fragment_bar_chart.setData(datat); /*LineChart折线图实现实现*/ // //getBarData(x轴坐标个数,x对应的值既Y值) // ArrayList<Entry> yValues=new ArrayList<>(); // yValues.add(new BarEntry(44f,0)); // yValues.add(new BarEntry(45f,1)); // yValues.add(new BarEntry(46f,2)); // LineDataSet yValue=new LineDataSet(yValues,"Data"); // ArrayList<String> xValues=new ArrayList<>(); // xValues.add("nihao"); // xValues.add("zaijian"); // xValues.add("baibai"); // LineData xValue=new LineData(xValues,yValue); // day_fragment_bar_chart.setData(xValue); // day_fragment_bar_chart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM); } // private void showBarChart(BarChart barChart,BarData barData){ // barChart.setData(barData); // barChart.getXAxis().setLabelsToSkip(50); // barChart.setDescriptionPosition(100,20); // barChart.setDescription("nihao"); // barChart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM); // } // private BarData getmBarData(int count,float range){ // ArrayList<String> xValues=new ArrayList<String>(); // for (int i= 0;i<count;i++){ // xValues.add(i+""); // } // ArrayList<BarEntry> yValues=new ArrayList<BarEntry>(); // for (int i=1;i<5;i++){ // float value=(float)(Math.random()*range/*100以内随机数*/)+3; // yValues.add(new BarEntry(value,i)); // } // BarDataSet barDataSet=new BarDataSet(yValues,"环境站台"); // ArrayList<BarDataSet> barDataSets=new ArrayList<BarDataSet>(); // barDataSets.add(barDataSet); // BarData barData=new BarData(xValues,barDataSet); // return barData; // } }