zoukankan      html  css  js  c++  java
  • 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

        

                        

            

           

  • 相关阅读:
    洛谷.3254.圆桌问题(最大流ISAP)
    BZOJ.2639.矩形计算(二维莫队)
    BZOJ.2724.[Violet 6]蒲公英(静态分块)
    BZOJ.4241.历史研究(回滚莫队 分块)
    BZOJ.4542.[HNOI2016]大数(莫队)
    SPOJ.COT2 Count on a tree II(树上莫队)
    BZOJ.3757.苹果树(树上莫队)
    洛谷.2325.[SCOI2005]王室联邦(贪心)
    BZOJ.1299.[LLH邀请赛]巧克力棒(博弈论 Nim)
    HDU.2516.取石子游戏(博弈论 Fibonacci Nim)
  • 原文地址:https://www.cnblogs.com/huihuizhang/p/8808266.html
Copyright © 2011-2022 走看看