当前位置:  开发笔记 > 编程语言 > 正文

Android:使用`MPAndroidChart`绘制水平条形图

如何解决《Android:使用`MPAndroidChart`绘制水平条形图》经验,为你挑选了1个好方法。

我试图使用MPAndroidChart在android中绘制一个水平条形图.请检查以下代码.

activity_mail.xml






    

MainActivity.java

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

import com.github.mikephil.charting.charts.HorizontalBarChart;
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.utils.ColorTemplate;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        HorizontalBarChart chart = (HorizontalBarChart) findViewById(R.id.chart);

        BarData data = new BarData(getDataSet());
        chart.setData(data);
        chart.animateXY(2000, 2000);
        chart.invalidate();
    }

    private BarDataSet getDataSet() {

        ArrayList entries = new ArrayList();
                entries.add(new BarEntry(4f, 0));
                entries.add(new BarEntry(8f, 1));
                entries.add(new BarEntry(6f, 2));
                entries.add(new BarEntry(12f, 3));
                entries.add(new BarEntry(18f, 4));
                entries.add(new BarEntry(9f, 5));

        BarDataSet dataset = new BarDataSet(entries,"hi");
        return dataset;
    }

    private ArrayList getXAxisValues() {
        ArrayList labels = new ArrayList();
                labels.add("January");
                labels.add("February");
                labels.add("March");
                labels.add("April");
                labels.add("May");
                labels.add("June");
        return labels;
    }


}

这给了我以下图表. 在此输入图像描述

但是,我想要的条形图如下... 在此输入图像描述

所以我需要做几件事......

    给酒吧上色

    删除引导线

    显示左侧每个条形的描述

    在条形的末尾用数字显示"%"标记(例如:对于第一个条形,显示4%而不是4)

我也访问了这篇文章,图书馆的编辑似乎已经完成了我要求的一些内容,所以可能使用这个库.我该怎么办?



1> Ryan..:

着色酒吧:

BarDataSet#setColor(List)

删除网格线:

chart.getXAxis().setDrawGridLines(false);
chart.getLeftAxis().setDrawGridLines(false);

显示描述:

单独添加文本视图到图表

将%添加到值:

xAxis.setValueFormatter(new IAxisValueFormatter() {
    @Override
    public String getFormattedValue(float value, AxisBase axis) {
        return (int) Math.floor(value) + "%";
    }

});

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有