Android之使用MPAndroidChart绘画柱状图

一、简单使用

 private void initDate() {
        for (int i=0;i<10;i++){
            list.add(new BarEntry(i+1, (float) (Math.random()*60)));
        }
        barDataSet=new BarDataSet(list,"温度");
        barData=new BarData(barDataSet);
        bar_chart.setData(barData);
    }

    private void initView() {
        bar_chart=findViewById(R.id.bar_chart);
    }

效果展示:

二、文本标签的设置

//隐藏文本标签
       // bar_chart.getDescription().setEnabled(false);
        //设置文本标签名
        Description description=new Description();
        description.setText("柱状图标题");
        //设置文本标签大小
        description.setTextSize(23f);
        //设置文本标签颜色
        description.setTextColor(Color.DKGRAY);
        //设置文本标签位置
        WindowManager windowManager= (WindowManager) this.getSystemService(WINDOW_SERVICE);
        DisplayMetrics displayMetrics=new DisplayMetrics();
        windowManager.getDefaultDisplay().getMetrics(displayMetrics);
        description.setPosition((displayMetrics.widthPixels/2)+120,60);
        //将文本标签设置到柱状图中
        bar_chart.setDescription(description);
        //设置柱状图边距
        bar_chart.setExtraOffsets(15,70,20,20);

效果展示

三、对x轴的设置

private void x(){
        //设置x轴的位置
        bar_chart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);
        //设置最小值和最大值
        bar_chart.getXAxis().setAxisMinimum(0f);
        bar_chart.getXAxis().setAxisMaximum(11f);
        //设置x轴是否绘制网格
        bar_chart.getXAxis().setDrawGridLines(false);
        //设置x轴条目数量
        bar_chart.getXAxis().setLabelCount(barDataSet.getEntryCount()+2,true);
    }

效果展示

四、对y轴的处理

//对y轴的处理
    private void y(){
        //设置最大值和最小值
        bar_chart.getAxisLeft().setAxisMaximum(60f);
        bar_chart.getAxisLeft().setAxisMinimum(0f);
        //取消右侧y轴
        bar_chart.getAxisRight().setEnabled(false);
        //设置y轴是否绘制网格
        bar_chart.getAxisLeft().setDrawGridLines(false);
        //对y轴数据进行格式化
        bar_chart.getAxisLeft().setValueFormatter(new ValueFormatter() {
            @Override
            public String getFormattedValue(float value) {
                String newValues=value+"";
                return newValues.substring(0,newValues.indexOf("."))+"℃";
            }
        });
    }

效果展示

五、补充

//为x轴、y轴设置动画效果
        bar_chart.animateX(5000);
        bar_chart.animateY(5000);

效果展示

结语:第一次绘制柱状图,有很多属性没有实现,如果我有任何错误或不准确的地方,请各位大佬批评指正,我将非常感激您的帮助。

相关推荐

  1. 基础时间线绘制

    2024-04-08 12:24:02       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-08 12:24:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-08 12:24:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-08 12:24:02       87 阅读
  4. Python语言-面向对象

    2024-04-08 12:24:02       96 阅读

热门阅读

  1. opencv如何寻找图片轮廓

    2024-04-08 12:24:02       31 阅读
  2. AI技术创业机会之教育科技

    2024-04-08 12:24:02       36 阅读
  3. 1分钟带你了解代付业务|代付业务简介

    2024-04-08 12:24:02       38 阅读
  4. 手持式电吹风上架亚马逊审核要求

    2024-04-08 12:24:02       30 阅读
  5. computed 思想实现

    2024-04-08 12:24:02       36 阅读