一、简单使用
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);
效果展示
结语:第一次绘制柱状图,有很多属性没有实现,如果我有任何错误或不准确的地方,请各位大佬批评指正,我将非常感激您的帮助。