Android'图表MPAndroidchart 的BarChart





如何给图表设置数据


  /*
        设置数据
        设置数据一共需要五个步骤
        Step1: 设置 List*/


        //使用BarEntry
        List<BarEntry> barEntries = new ArrayList<>();
        Integer[] ints = {23, 32, 45, 67, 89};
        for (int i = 0; i < ints.length; i++) {    //0-4
            BarEntry barEntry = new BarEntry(i+1,ints[i]);         //x,y
            barEntries.add(barEntry);
        }




        //Step2: 将 List 的对象放在 BarDataSet 里, 树状图的颜色就是在这里设置
       
       //BarDataSet
        BarDataSet set1 = new BarDataSet(barEntries, "the weather");
        //设置每个树状图的颜色,一共有两个方法setColors和setColor
        set1.setColor(getResources().getColor(android.R.color.holo_orange_dark));




        //Step3: 将 BarDataSet 的对象放在 List 里
 
        //IBarDataSet
        ArrayList<IBarDataSet> barDataSets = new ArrayList<>();
        barDataSets.add(set1);




         //BarData
        //Step4: List 的数据放在 BarData 里
        BarData barData = new BarData(barDataSets);
        //设置树状图的宽度
        barData.setBarWidth(0.5f);
        //设置树状图上的字的字号
        barData.setValueTextSize(10);




        //Step5: 将 BarData 的数据放在 BarChart 上
        barChart.setData(barData);















设置完数据之后,我们肯定还可以对图表进行一些简单的操作




 barChart = (BarChart) findViewById(R.id.barchart);
        //描述,默认在右下角
        Description descirption = new Description();
        descirption.setText("这是一坨翔");
        descirption.setTextColor(Color.parseColor("#000000"));
        descirption.setTextSize(19);
        barChart.setDescription(descirption);


        //设置是否可以拖拽
        barChart.setDragEnabled(false);
        //是否能够缩放
        barChart.setScaleEnabled(false);
        //是否允许x轴缩放
        barChart.setScaleEnabled(false);
        //设置显示的动画,BarChart的动画
        //barChart.setAnimation();
        //如果柱状超过设置的个数,则隐藏树状图上的值
        barChart.setMaxVisibleValueCount(10);






        //x轴的操作


        //取到x轴的操作
        XAxis xAxis = barChart.getXAxis();
        //是否显示X轴的线(与X轴垂直的线),默认为true
        xAxis.setDrawGridLines(false);
        //设置XAxis坐标的字在哪里显示 XAxisPosition{ TOP, BOTTOM, BOTH_SIDED, TOP_INSIDE, BOTTOM_INSIDE}
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
        //设置X轴的值的间隔,具体不同看下面的图
        xAxis.setGranularity(1f);
        //设置X轴的值的个数
        xAxis.setLabelCount(5);
















        //y轴的操作
        //得到左侧Y轴的实例
        YAxis leftYaxis = barChart.getAxisLeft();
        //设置y轴的线(与y轴垂直的线的宽)
        //leftYaxis.setGridLineWidth(Utils.convertDpToPixel(1));
        leftYaxis.setGridLineWidth(0);
        //设置Y轴的值的个数,默认为6个,最小为2个,最大为25个。第二个参数 如果启用,集标签数量将被强制,即标签的准确计数指定将绘制且分布均匀沿着轴 - 这可能导致标签有不均匀值
        leftYaxis.setLabelCount(5, false);
        //设置Y轴的起点值
        //leftYaxis.setAxisMinValue(0f);
        //设置将在全范围的百分比顶轴的空间。默认10F.设置在图表上最高处的值相比轴上最高值的顶端空间(总轴范围的百分比)最大值和最高值的百分比 设置为100,则最高值为最大值的1倍
        //leftYaxis.setSpaceTop(15f);








        /*
        设置数据
        设置数据一共需要五个步骤
        Step1: 设置 List*/


        //使用BarEntry
        List<BarEntry> barEntries = new ArrayList<>();
        Integer[] ints = {23, 32, 45, 67, 89};
        for (int i = 0; i < ints.length; i++) {    //0-4
            BarEntry barEntry = new BarEntry(i+1,ints[i]);
            barEntries.add(barEntry);
        }




        //Step2: 将 List 的对象放在 BarDataSet 里, 树状图的颜色就是在这里设置的
        BarDataSet set1 = new BarDataSet(barEntries, "the weather");
        //设置每个树状图的颜色,一共有两个方法setColors和setColor
        set1.setColor(getResources().getColor(android.R.color.holo_orange_dark));




        //Step3: 将 BarDataSet 的对象放在 List 里
        ArrayList<IBarDataSet> barDataSets = new ArrayList<>();
        barDataSets.add(set1);




        //Step4: List 的数据放在 BarData 里
        BarData barData = new BarData(barDataSets);
        //设置树状图的宽度
        barData.setBarWidth(0.5f);
        //设置树状图上的字的字号
        barData.setValueTextSize(10);




        //Step5: 将 BarData 的数据放在 BarChart 上
        barChart.setData(barData);
























设置多条柱状图的格式,但是这里的值要换一下,毕竟同样的值会被掩盖


 //三个柱状
        entries1.add(new BarEntry(1f, 0));
        entries1.add(new BarEntry(2f, 1));
        entries1.add(new BarEntry(3f, 2));
        entries1.add(new BarEntry(4f, 3));
        entries1.add(new BarEntry(5f, 4));
        entries1.add(new BarEntry(6f, 5));
        entries1.add(new BarEntry(7f, 6));
        entries1.add(new BarEntry(8f, 7));
        entries1.add(new BarEntry(9f, 8));
        entries1.add(new BarEntry(10f, 9));
        entries1.add(new BarEntry(11f, 10));
        entries1.add(new BarEntry(12f, 11));


      entries2.add(new BarEntry(1f, 0));
        entries2.add(new BarEntry(2f, 1));
        entries2.add(new BarEntry(3f, 2));
        entries2.add(new BarEntry(4f, 3));
        entries2.add(new BarEntry(5f, 4));
        entries2.add(new BarEntry(6f, 5));
        entries2.add(new BarEntry(7f, 6));
        entries2.add(new BarEntry(8f, 7));
        entries2.add(new BarEntry(9f, 8));
        entries2.add(new BarEntry(10f, 9));
        entries2.add(new BarEntry(11f, 10));
        entries2.add(new BarEntry(12f, 11));


        entries3.add(new BarEntry(1f, 0));
        entries3.add(new BarEntry(2f, 1));
        entries3.add(new BarEntry(3f, 2));
        entries3.add(new BarEntry(4f, 3));
        entries3.add(new BarEntry(5f, 4));
        entries3.add(new BarEntry(6f, 5));
        entries3.add(new BarEntry(7f, 6));
        entries3.add(new BarEntry(8f, 7));
        entries3.add(new BarEntry(9f, 8));
        entries3.add(new BarEntry(10f, 9));
        entries3.add(new BarEntry(11f, 10));
        entries3.add(new BarEntry(12f, 11));


        //设置显示图形和文字,并且设置颜色
        dataset = new BarDataSet(entries1, "甲");
        dataset.setColor(Color.rgb(255, 48, 48));
      dataset2 = new BarDataSet(entries2, "乙");
        dataset2.setColor(Color.rgb(0, 191, 255));
         dataset3 = new BarDataSet(entries3, "丙");
        dataset3.setColor(Color.rgb(255, 215, 0));




        ArrayList<IBarDataSet> ibarDataSet = new ArrayList<>();
        ibarDataSet.add(dataset);
        ibarDataSet.add(dataset2);
        ibarDataSet.add(dataset3);




        BarData data3 = new BarData(ibarDataSet);
        barChart.setData(data3);
        barChart.animateY(2000);//动画效果 y轴方向,2秒
















  //下面再来一个设置数据的小例子


  barChart = (BarChart) findViewById(R.id.barchart);


        //处理数据


        //1这些事数据,使用BarEntry
        ArrayList<BarEntry> barEntries = new ArrayList<>();
        barEntries.add(new BarEntry(1,10));             
        barEntries.add(new BarEntry(2,20));
        barEntries.add(new BarEntry(3,30));


        //2对这些数据的设置
        BarDataSet barDataSet = new BarDataSet(barEntries,"这些数据的描述");




        //3通过这个集合,可以设置多组数据
        ArrayList<IBarDataSet> iBarDataSets = new ArrayList<>();            
        iBarDataSets.add(barDataSet);




        //4给多组数据进行一些设置
        BarData barData = new BarData(iBarDataSets);
        barData.setBarWidth(0.5f);
        barData.setValueTextColor(Color.BLACK);


        //设置数据
        barChart.setData(barData);


































最后一个列子
参考博客http://blog.csdn.net/github_33304260/article/details/51272078


package com.ityingli.www.mpandroidcharbarchat;


import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;


import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.components.Description;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.interfaces.datasets.IBarDataSet;


import java.util.ArrayList;


public class MainActivity extends AppCompatActivity {
    private BarChart barChart;




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        barChart = (BarChart) findViewById(R.id.barchart);


        //这里使用两个方法,一个控制数据,一个控制视图
        BarData barData = setInitData();


        //设置图表的属性
        setBarData(barData);
    }


    private void setBarData(BarData barData) {
        barChart.setData(barData);
        barChart.setDrawBorders(true);   //设置图标是否要边框,当然也可以设置边框的颜色大少等、
        Description  description = new Description();
        description.setText("");
        barChart.setDescription(description);   //设置不要描述


        barChart.setDrawGridBackground(true);    //是否显示表格颜色
        barChart.setGridBackgroundColor(Color.RED);   //设置红色




        barChart.setTouchEnabled(false); // 设置是否可以触摸
        barChart.setDragEnabled(false);// 是否可以拖拽
        barChart.setScaleEnabled(false);// 是否可以缩放
        barChart.setPinchZoom(false);//y轴的值是否跟随图表变换缩放;如果禁止,y轴的值会跟随图表变换缩放


 //       barChart.setBackgroundColor(Color.BLACK);// 设置整个图表控件的背景


 //       barChart.setDrawBarShadow(true);//柱状图没有数据的部分是否显示阴影效果


 //       barChart.setDrawValueAboveBar(false);//柱状图上面的数值是否在柱子上面


        //是否显示竖直标尺线
        barChart.getXAxis().setDrawGridLines(false);
        //设置横坐标之间的间隔距离 float值
 //       barChart.getXAxis().setSpaceMax(50);


        //右侧是否显示Y轴数值
        barChart.getAxisRight().setDrawLabels(false);


        //是否显示最右侧竖线
        barChart.getAxisRight().setEnabled(false);


       
    }


    //初始化数据
    private BarData setInitData() {
        ArrayList<String> xValues = new ArrayList<>();
        for(int i =0 ;i<24;i++){
            xValues.add(i+"");
        }


        ArrayList<BarEntry> barentryS = new ArrayList<>();
        for(int i = 0 ; i<24;i++){
            barentryS.add(new BarEntry(i,(float)(Math.random()*10)+3));
        }


        BarDataSet barDataSet = new BarDataSet(barentryS,"测试数据");


        ArrayList<IBarDataSet> iBarDataSet = new ArrayList<>();
        iBarDataSet.add(barDataSet);


        BarData barData = new BarData(iBarDataSet);
        //barChart.setData(barData);
        return  barData;
    }

}










  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值