精华内容
下载资源
问答
  • mpandroidchart

    2018-07-07 21:57:18
    mpandroidchart的各种图表使用,相当于一个新的module,使用的时候直接导入就可以了。
  • MPAndroidChart

    2018-06-08 09:03:39
    在Android中绘制图表的第三方库MPAndroidChart的3.0.2版本的jar包,很好用的图表jar包。欢迎下载
  • MPandroidChart

    2017-11-01 15:10:49
    MpAndroidChart的简单封装,适用于项目维护,开发。 主要封装柱状图,饼状图,折线图,横向柱状图,柱状图可以实现多柱图
  • MpAndroidChart

    2019-11-18 20:31:38
    MpAndroidChart使用以及在使用过程中遇到的某些问题 这里先给上一个官方链接吧 https://weeklycoding.com/mpandroidchart-documentation/ 这里边有官方示例,有集成的MpAndroidChart APP,也有官方的教程...

    MpAndroidChart使用以及在使用过程中遇到的某些问题

    这里先给上一个官方链接吧

    https://weeklycoding.com/mpandroidchart-documentation/
    这里边有官方示例,有集成的MpAndroidChart APP,也有官方的教程视频,不过好像有点少,并且全英文,画图过程中可能会出些小毛病。数据显示不全,其中有个方法chart.setExtraOffsets (left,top,right,bottom); //用于与边界有边距

    LineChart

    初始化
    List<Entry> lineEntryList;
    LineDataSet lineDataSet;
    LineData lineData;
    private LineChart mChart;
    private void initView() {
    //初始化图表,数据绑定
        mChart = (LineChart) findViewById (R.id.chart);
        lineEntryList   = new ArrayList<> ();
    //第二个参数是那个描述,以及那个Legend ,好像都是被他默认一样了
        lineDataSet  = new LineDataSet (lineEntryList,"线形图");
    // 添加数据
        lineData = new LineData ();
        lineData.addDataSet (lineDataSet);
        
    //	把数据交给Chart控件
        mChart.setData (lineData);
    
    //记得重绘
        mChart.invalidate ();
    }
    
    这里有三种添加数据的方式
    // 一
    List<ILineDataSet> lineDataSetss  =new ArrayList<> ();
    lineData = new LineData (lineDataSetss);
    
    // 二 这里可以放多个LineDataSet ,也可以只放一个
     lineData  = new LineData(lineDataSet,new LineDataSet (null,""));
    
    // 三
    lineData = new LineData ();
    lineData.addDataSet (lineDataSet);
    
    添加数据,下面添加的是一个随机数
        private void getData() {
            for (int i = 0; i < 10; i++) {
                //添加一个Entry 一个坐标点
                lineEntryList.add (
                    new Entry (lineEntryList.size (),new Random 	().nextInt (100))
                );
            }
            //记得刷新,不然这憨憨他不知道是恁么个回事
            lineDataSet.notifyDataSetChanged ();
            lineData.notifyDataChanged ();
            mChart.notifyDataSetChanged ();
            //这里不必重新绘制,当然也允许你重新绘制喽
        }
    
    一些Chart的属性,也就那么点,将就一下吧
        private void initChartStyle() {
            //获得Chart 的 X,左Y,右Y 轴
            XAxis xAxis = mChart.getXAxis ();
            YAxis left = mChart.getAxisLeft ();
            YAxis axisRight = mChart.getAxisRight ();
    
            /**
             * 以下的属性 , 因为不同的轴他们之间是有联系的,属性差不多都一致,都有,所以我就只拿X轴做示例了,
             * 举一反三啊!
             */
            //设置轴的间隙,另外的轴相似,基本上属性差不多值,应为他们的基类都是一家族的
            xAxis.setGranularity (1f);
    
            //设置轴的位置,默认在顶层,Top
            xAxis.setPosition (XAxis.XAxisPosition.BOTTOM);
    
            //设置轴的最小,最大值
            xAxis.setAxisMinimum (0f);
            xAxis.setAxisMaximum (10);
    
            //设置轴的标签格式
            xAxis.setValueFormatter (new IAxisValueFormatter () {
                @Override
                public String getFormattedValue(float value, AxisBase axis) {
                    return value +"日";
                }
            });
    
            //这个值用于设置它是否绘制,显示
            xAxis.setEnabled (true);
    
            //网格 色,以及是否绘制
            xAxis.setGridColor (Color.YELLOW);
            xAxis.setEnabled (true);
    
    
            //设置是否绘制标签 ,标签居中吗 ? 居中就true
            xAxis.setDrawLabels (true);
            xAxis.setCenterAxisLabels (false);
    
            //这里设置轴显示的标签数量,force 这个值没有详细了解,但是选true会出一点小问题,x轴的位置,可能不会对应
            xAxis.setLabelCount (8,true);
    
    
            //这里是一些LineDataSet 的属性
            //设置它的颜色,可以是当个的颜色,也能是多个,可以 int[]  list<Integer>
            lineDataSet.setColors (Color.RED,Color.GRAY);
            //是否绘制中心的圆洞
            lineDataSet.setDrawCircleHole (false);
            //是不是需要填充
            lineDataSet.setDrawFilled (true);
            //这里设置完它的属性啊,必须的告诉它更新了,得更新了,重绘
    
            //mChart的一些属性
            mChart.setNoDataText ("木得数据的提示");
    
            //描述
            Description description = new Description ();
            description.setText ("Hello Chart");
            mChart.setDescription (description);
            //设置是否显示描述
            mChart.getDescription ().setEnabled (true);
    
    
            //legend 图表旁边的图示
            Legend legend = mChart.getLegend ();
            legend.setEnabled (true);
            //多个图示时,可以设置它的排列方式,垂直 ||  水平,一般是多条线才会用到
            legend.setOrientation (Legend.LegendOrientation.VERTICAL);
            //设置图示位置  设置它的位置只能垂直的,水平的分开设,
            legend.setVerticalAlignment (Legend.LegendVerticalAlignment.CENTER);
            legend.setHorizontalAlignment (Legend.LegendHorizontalAlignment.RIGHT);
    
            mChart.invalidate ();
        }
    

    BarChart

    BarChart的一些属性,因为大多数属性都是一样的,所以底下就简单讲述一下吧
    //初始化数据
     	List<BarEntry> barEntryList;
        BarDataSet barDataSet;
        BarData barData;
        private void initView() {
            mF7BarChart = view.findViewById (R.id.f7_barChart);
            barEntryList = new ArrayList<> ();
            //设置数据,差不多也就这里有点区别了
            barDataSet = new BarDataSet (barEntryList,"");
            //这里和LineChart 属性差不多
            barData = new BarData (barDataSet);
            mF7BarChart.setData (barData);
            mF7BarChart.invalidate ();
        }
    
    这里简述一下他的独有属性吧,它其实有好几种类型,有堆栈(Stack) ,有成组的(Group),,,,多着呢,想要研究就去官方文档吧!
    堆栈的与其他的图吧,这里呢,就不详细写了
    //成组图主要就是一个方法的调用 group
    //官方说法:  7 * ( barSpace + barWidth )  + groupSpace  = 1
    //需要显示柱状图的类别 数量
    int barAmount = barData.getDataSetCount ();
    // 组与组之间的间隙 groupSpace
    float groupSpace   =  0.06f;
    //这里我为了简单就分开了,组内柱之间的间隙为barSpace,柱宽为barWidth
    float barSpace =  ((1f- groupSpace) / barAmount  )*0.01f;
    float barWidth =  ((1f- groupSpace) / barAmount  )*0.99f;
    //设置柱宽
    barData.setBarWidth (barWidth);
    //这个方法是必须的,不能少,少了就完了
    mBarChart.groupBars (0,groupSpace,barSpace);
    //设置完记得刷新,重新绘制
    mBarChart.invalidate();
    

    HorizontalBarChart

    这是一个单独的控件,使用方法和BarChart的写法几乎一模一样,只不过X轴的位置变成了左右,左右变成了上下而已,差不多就是将BarChart 翻转了一下而已,可以理解为向右旋转了90度而已,这里就不做解释了

    PieChart

    饼图也是常见的一种图表,它的使用方法,和前边的图示有点类似,只不过它有一些地方有点坑

    我花费了大半天撸它,难受的一批呀!

        //首先初始化
    	PieDataSet pieDataSet ;
        PieData pieData;
        List<PieEntry> pieEntries;
        private void initView() {
            pieEntries = new ArrayList<> ();
            mF7PieChart = view.findViewById (R.id.f7_pieChart);
            //这里我长教训了,PieChart这个图表好像需要给他数据,不然它死活不搭理你呀,getData();方法用于获取数据,
            getData();
            pieDataSet = new PieDataSet (pieEntries,"");
            pieData = new PieData (pieDataSet);
            mF7PieChart.setData (pieData);
            mF7PieChart.invalidate ();
        }
    

    这里稍微写了点PieChart的属性

    //设置是否绘制中间的那个洞
    mF7PieChart.setDrawHoleEnabled (false);
    //是否绘制值的那个标签
    pieDataSet.setDrawValues (true);
    //pieData特有的,就是那个值引出的线,两条
    pieDataSet.setValueLinePart1Length (0.5f);
    pieDataSet.setValueLinePart2Length (1.05f);
    //设置这个部分之间的间隙,给点白边间隙
    pieDataSet.setSliceSpace (6f);
    //设置是否绘制饼图 Entry的标签
    mF7PieChart.setDrawEntryLabels (false);
    mF7PieChart.setDrawCenterText (false);
    //这个是为了避免太靠边,导致值显示不全,这个方法
    mF7PieChart.setExtraOffsets (20,50,20,10);
    
    //设置这个部分之间的间隙,给点白边间隙
    pieDataSet.setSliceSpace (6f);
    //设置是否绘制饼图 Entry的标签
    mF7PieChart.setDrawEntryLabels (false);
    mF7PieChart.setDrawCenterText (false);
    //这个是为了避免太靠边,导致值显示不全,这个方法
    mF7PieChart.setExtraOffsets (20,50,20,10);
    
    //这里记得刷新,
    mF7PieChart.invalidate();
    
    
    
    展开全文
  • MPAndroidchart

    2016-10-13 08:35:16
    连接地址:Mpandroidchart

    连接地址:Mpandroidchart

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,157
精华内容 2,462
关键字:

mpandroidchart