当前位置:网站首页 > 更多 > 编程开发 > 正文

[安卓] 安卓MPAndroidChart绘制柱状图

作者:CC下载站 日期:2020-10-09 00:00:00 浏览:47 分类:编程开发

首先是添加Jar包

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

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

allprojects{
repositories{
google()
jcenter()
maven{url"https://jitpack.io"}
}
}

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

dependencies{
implementationfileTree(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布局文件

<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/chart"
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="vertical">
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/barChart"
android:layout_width="match_parent"
android:layout_height="150dp"/>
</LinearLayout>
</LinearLayout>

然后这是Mainactivity的代码

packageink.cik.echartsstu;

importandroid.os.Bundle;
importandroid.os.Trace;

importandroidx.appcompat.app.AppCompatActivity;

importcom.github.mikephil.charting.charts.BarChart;
importcom.github.mikephil.charting.charts.LineChart;
importcom.github.mikephil.charting.components.Description;
importcom.github.mikephil.charting.components.XAxis;
importcom.github.mikephil.charting.components.YAxis;
importcom.github.mikephil.charting.data.BarData;
importcom.github.mikephil.charting.data.BarDataSet;
importcom.github.mikephil.charting.data.BarEntry;

importjava.util.ArrayList;
importjava.util.List;
importjava.util.Random;

publicclassMainActivityextendsAppCompatActivity{

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//定义一下界面的控件
BarChartbarChart=findViewById(R.id.barChart);
initBarChart(barChart);//初始化一个柱状图
barChart.setData(setBarData());//给柱状图添加数据
barChart.invalidate();//让柱状图填充数据后刷新
}

publicBarDatasetBarData(){
List<BarEntry>entries=newArrayList<>();//定义一个数据容器
//生成随机数数据
for(inti=0;i<=12;i++){
entries.add(newBarEntry(i,newRandom().nextInt(300)));
}
BarDataSetbarDataSet=newBarDataSet(entries,"测试数据");
BarDatabarData=newBarData(barDataSet);
returnbarData;//返回可用于柱状图的数据
}

publicBarChartinitBarChart(BarChartbarChart){
barChart.setDrawBarShadow(false);//设置每条柱子的阴影不显示
barChart.setDrawValueAboveBar(true);//设置每条柱子的数值显示
XAxisxAxis=barChart.getXAxis();//获取柱状图的x轴
YAxisyAxisLeft=barChart.getAxisLeft();//获取柱状图左侧的y轴
YAxisyAxisRight=barChart.getAxisRight();//获取柱状图右侧的y轴
setAxis(xAxis,yAxisLeft,yAxisRight);//调用方法设置柱状图的轴线
returnbarChart;
}

publicvoidsetAxis(XAxisxAxis,YAxisleftAxis,YAxisrightAxis){
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轴显示

}
}


您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯