一幅簡(jiǎn)單的BarChart
效果:
效果圖
代碼:
private void initBarChart() {
mBarChart = (BarChart) findViewById(R.id.bar_chart);
/*1.chart格式設(shè)置*/
mBarChart.setDrawGridBackground(false);//無背景網(wǎng)格
mBarChart.setDrawBorders(false);//無邊框
//圖表描述
Description description = new Description();
description.setText("近一周學(xué)習(xí)時(shí)間圖(分鐘/天)");//描述內(nèi)容
description.setTextColor(0xff000000);//描述字體顏色
description.setTextSize(16f);//描述字體大小
description.setTextAlign(Paint.Align.LEFT);//文字左對(duì)齊
description.setPosition(100,100);//設(shè)置圖表描述
mBarChart.setDescription(description);
mBarChart.setTouchEnabled(false);//可觸摸
mBarChart.setDragEnabled(true);//可拖動(dòng)
mBarChart.setScaleEnabled(true);//可放縮
/*2.獲取坐標(biāo)軸并進(jìn)行設(shè)置*/
//獲取和設(shè)置X軸
XAxis xAxis = mBarChart.getXAxis();//獲取X軸
xAxis.setEnabled(true);//設(shè)置顯示X軸
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);//X軸位置
xAxis.setAxisLineWidth(2);//設(shè)置X軸寬度
xAxis.setDrawGridLines(false);//無網(wǎng)格
xAxis.setDrawAxisLine(true);//顯示X軸
/*X軸數(shù)據(jù)*/
final String[] xValues = {"3.14","3.15","3.16","3.17","3.18","3.19","3.20"};
/*給X軸設(shè)置數(shù)據(jù)*/
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);
//獲取并設(shè)置Y軸
YAxis leftYAxis = mBarChart.getAxisLeft();//獲取左側(cè)Y軸
YAxis rightYAxis = mBarChart.getAxisRight();//獲取右側(cè)Y軸
rightYAxis.setEnabled(false);//禁止顯示右側(cè)Y軸
leftYAxis.setAxisLineWidth(2);
leftYAxis.setDrawGridLines(false);
/*leftYAxis.setStartAtZero(true);//設(shè)置從零開始顯示*/
/*3.添加數(shù)據(jù)*/
ArrayList<BarEntry> entries1 = new ArrayList<>();//Entry就是折線圖上的點(diǎn)
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,"使用時(shí)間");
BarData barData = new BarData(barDataSet);
mBarChart.setData(barData);
mBarChart.invalidate();//刷新顯示
}
說明:
原理和LineChart一樣康栈,就是圖表類型有改變