一幅简单的BarChart
效果:
效果图代码:
private void initBarChart() {
mBarChart = (BarChart) findViewById(R.id.bar_chart);
/*1.chart格式设置*/
mBarChart.setDrawGridBackground(false);//无背景网格
mBarChart.setDrawBorders(false);//无边框
//图表描述
Description description = new Description();
description.setText("近一周学习时间图(分钟/天)");//描述内容
description.setTextColor(0xff000000);//描述字体颜色
description.setTextSize(16f);//描述字体大小
description.setTextAlign(Paint.Align.LEFT);//文字左对齐
description.setPosition(100,100);//设置图表描述
mBarChart.setDescription(description);
mBarChart.setTouchEnabled(false);//可触摸
mBarChart.setDragEnabled(true);//可拖动
mBarChart.setScaleEnabled(true);//可放缩
/*2.获取坐标轴并进行设置*/
//获取和设置X轴
XAxis xAxis = mBarChart.getXAxis();//获取X轴
xAxis.setEnabled(true);//设置显示X轴
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);//X轴位置
xAxis.setAxisLineWidth(2);//设置X轴宽度
xAxis.setDrawGridLines(false);//无网格
xAxis.setDrawAxisLine(true);//显示X轴
/*X轴数据*/
final String[] xValues = {"3.14","3.15","3.16","3.17","3.18","3.19","3.20"};
/*给X轴设置数据*/
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
return xValues[(int)value];
}
@Override
public int getDecimalDigits() {
return 0;
}
});
xAxis.setDrawLabels(true);
//获取并设置Y轴
YAxis leftYAxis = mBarChart.getAxisLeft();//获取左侧Y轴
YAxis rightYAxis = mBarChart.getAxisRight();//获取右侧Y轴
rightYAxis.setEnabled(false);//禁止显示右侧Y轴
leftYAxis.setAxisLineWidth(2);
leftYAxis.setDrawGridLines(false);
/*leftYAxis.setStartAtZero(true);//设置从零开始显示*/
/*3.添加数据*/
ArrayList<BarEntry> entries1 = new ArrayList<>();//Entry就是折线图上的点
entries1.add(new BarEntry(0,85));
entries1.add(new BarEntry(1,88));
entries1.add(new BarEntry(2,75));
entries1.add(new BarEntry(3,69));
entries1.add(new BarEntry(4,95));
entries1.add(new BarEntry(5,77));
entries1.add(new BarEntry(6,88));
BarDataSet barDataSet = new BarDataSet(entries1,"使用时间");
BarData barData = new BarData(barDataSet);
mBarChart.setData(barData);
mBarChart.invalidate();//刷新显示
}
说明:
原理和LineChart一样,就是图表类型有改变
网友评论