• Android hellocharts 柱形图详解


               近日需要做图表结构的项目,目前最火的就是hellocharts  和MPAndroidChart  相对来说hellocharts集成比较简单:

                 官网地址   https://github.com/lecho/hellocharts-android和https://github.com/PhilJay/MPAndroidChart

                 参考地址:https://blog.csdn.net/ITermeng/article/details/70135539

                 中文版注释版:https://github.com/IamXiaRui/Android_5.0_ViewDemo/tree/master/HelloChartsDemo

                 针对hellocharts进行了一些了解和心得给大家共同分享一下,不足之处多多指教:

              一、柱状图

                           简单的集成:

                          (1)在AndroidStudio的build.gradle中添加依赖:

    dependencies{
    compile 'com.github.lecho:hellocharts-library:1.5.8@aar' 
    }

                           (2)引用控件

     <lecho.lib.hellocharts.view.ColumnChartView
            android:id="@+id/chart"
            android:layout_width="match_parent"
            android:layout_height="400dp"
            android:layout_margin="10dp"/>

                           (3)设置数据以及详细参数

     @Bind(R.id.chart)
        ColumnChartView ColumnChartView;
        /*========== 数据相关 ==========*/
        private ColumnChartData mColumnChartData;    //柱状图数据
        public final static String[] xValues = new String[]{"语文", "数学", "英语", "音乐", "科学", "体育"};
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_surface);
            ButterKnife.bind(this);
            initDate();
        }
    
        private void initDate() {
             /*========== 柱状图数据填充 ==========*/
            List<Column> columnList = new ArrayList<>(); //柱子列表
            List<SubcolumnValue> subcolumnValueList;     //子柱列表(即一个柱子,因为一个柱子可分为多个子柱)
            List<AxisValue> axisValues = new ArrayList<>();//创建x轴数据
            for (int i = 0; i < 6; ++i) {
                subcolumnValueList = new ArrayList<>();//每个子柱的集合
                subcolumnValueList.add(new SubcolumnValue((float) Math.random() * 100, ChartUtils.pickColor()));//每个子柱集合的数据
                axisValues.add(new AxisValue(i).setLabel(xValues[i]));
                Column column = new Column(subcolumnValueList);//创建子柱数据
                column.setHasLabels(true);                    //设置列标签
                columnList.add(column);//添加柱子数据
    
            }
            mColumnChartData = new ColumnChartData(columnList);        //设置数据
            /*===== 坐标轴相关设置 =====*/
            Axis axisX = new Axis(axisValues);//设置横坐标柱子下面的分类
            Axis axisY = new Axis().setHasLines(true);
            axisX.setName("考试科目");    //设置横轴名称
            axisY.setName("成绩");    //设置竖轴名称
            mColumnChartData.setAxisXBottom(axisX); //设置横轴
            mColumnChartData.setAxisYLeft(axisY);   //设置竖轴
            ColumnChartView.setZoomEnabled(false);//不可点击
            //以上所有设置的数据、坐标配置都已存放到mColumnChartData中,接下来给mColumnChartView设置这些配置
            ColumnChartView.setColumnChartData(mColumnChartData);
            Viewport v = ColumnChartView.getMaximumViewport();//设置y轴的长度
            v.top = 103;
            ColumnChartView.setCurrentViewport(v);
        }

           效果图如下:

          

          简单的柱形图就出来了,具体的参数值已经出来,不做过多介绍

          Demo地址:https://gitee.com/anan9303/Chart.git

        

                        

            

           

  • 相关阅读:
    OC方法交换swizzle详细介绍——不再有盲点
    集合深浅拷贝以及经常遇到的坑(面试常问)
    网络安全——一图看懂HTTPS建立过程
    NSTimer定时器进阶——详细介绍,循环引用分析与解决
    NSRunLoop原理详解——不再有盲点
    灵活、可高度自定义的——Progress进度圈、弹窗、加载进度、小菊花
    swift学习笔记5——其它部分(自动引用计数、错误处理、泛型...)
    swift学习笔记4——扩展、协议
    swift学习笔记3——类、结构体、枚举
    个推推送处理
  • 原文地址:https://www.cnblogs.com/huihuizhang/p/8808266.html
Copyright © 2020-2023  润新知