android 柱状图绘制,安卓MPAndroidChart绘制柱状图

8cf3bd2e9c7ee78e08d4b422aa59b119.png

首先是添加Jar包

进入Gradle Scripts的目录,添加Jar包都在这里

502f53936f7221dfb9f6fad23799aca6.png

首先是Project这个的allprojects里面加上一行allprojects {

repositories {

google()

jcenter()

maven { url "https://jitpack.io" }

}

}

在app这个里面denpendencies中弄成这样子的dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'androidx.appcompat:appcompat:1.0.2'

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

testImplementation 'junit:junit:4.12'

androidTestImplementation 'androidx.test.ext:junit:1.1.0'

androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'

implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'

}

然后这是xml布局文件<?xml  version="1.0" encoding="utf-8"?>

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/chart"

android:layout_width="match_parent"

android:layout_height="150dp"

android:orientation="vertical">

android:id="@+id/barChart"

android:layout_width="match_parent"

android:layout_height="150dp" />

06c2c8d5c52ed1cae7498085ae48b226.png

然后这是Mainactivity的代码package ink.cik.echartsstu;

import android.os.Bundle;

import android.os.Trace;

import androidx.appcompat.app.AppCompatActivity;

import com.github.mikephil.charting.charts.BarChart;

import com.github.mikephil.charting.charts.LineChart;

import com.github.mikephil.charting.components.Description;

import com.github.mikephil.charting.components.XAxis;

import com.github.mikephil.charting.components.YAxis;

import com.github.mikephil.charting.data.BarData;

import com.github.mikephil.charting.data.BarDataSet;

import com.github.mikephil.charting.data.BarEntry;

import java.util.ArrayList;

import java.util.List;

import java.util.Random;

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main); //定义一下界面的控件

BarChart barChart = findViewById(R.id.barChart);

initBarChart(barChart); //初始化一个柱状图

barChart.setData(setBarData()); //给柱状图添加数据

barChart.invalidate(); //让柱状图填充数据后刷新

}

public BarData setBarData() {

List entries = new ArrayList<>(); //定义一个数据容器

//生成随机数数据

for (int i = 0; i <= 12; i++) {

entries.add(new BarEntry(i, new Random().nextInt(300)));

}

BarDataSet barDataSet = new BarDataSet(entries, "测试数据");

BarData barData = new BarData(barDataSet);

return barData; //返回可用于柱状图的数据

}

public BarChart initBarChart(BarChart barChart) {

barChart.setDrawBarShadow(false); // 设置每条柱子的阴影不显示

barChart.setDrawValueAboveBar(true); // 设置每条柱子的数值显示

XAxis xAxis = barChart.getXAxis(); // 获取柱状图的x轴

YAxis yAxisLeft = barChart.getAxisLeft(); // 获取柱状图左侧的y轴

YAxis yAxisRight = barChart.getAxisRight(); // 获取柱状图右侧的y轴

setAxis(xAxis, yAxisLeft, yAxisRight); //调用方法设置柱状图的轴线

return barChart;

}

public void setAxis(XAxis xAxis, YAxis leftAxis, YAxis rightAxis) {

xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); // 这里设置x轴在柱状图底部显示

xAxis.setAxisLineWidth(1); //设置x轴宽度

xAxis.setAxisMinimum(0); //设置x轴从0开始绘画

xAxis.setDrawAxisLine(true); //设置x轴的轴线显示

xAxis.setDrawGridLines(false);//设置x轴的表格线不显示

xAxis.setEnabled(true); // 设置x轴显示

leftAxis.setAxisMinimum(0); //设置y轴从0刻度开始

leftAxis.setDrawGridLines(false); // 这里设置左侧y轴不显示表格线

leftAxis.setDrawAxisLine(true); // 这里设置左侧y轴显示轴线

leftAxis.setAxisLineWidth(1); //设置y轴宽度

leftAxis.setEnabled(true); //设置左侧的y轴显示

rightAxis.setAxisMinimum(0); //设置y轴从0刻度开始

rightAxis.setDrawGridLines(false);// 这里设置右侧y轴不显示表格线

rightAxis.setDrawAxisLine(true); // 这里设置右侧y轴显示轴线

rightAxis.setAxisLineWidth(1); //设置右侧y轴宽度

rightAxis.setEnabled(true); //设置右侧的y轴显示

}

}