1.导入三方jar包(可参照)
MPAndroidChart(GitHub上优秀得图表功能库)
2.布局activity_main.xml(这里显示了两个,其实多余)
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/chart1"
android:layout\_width="match\_parent"
android:layout\_height="250dp"
android:layout\_below="@+id/chart"
android:layout\_alignParentLeft="true"
android:layout\_alignParentStart="true" />
3.柱状图类BarChart3s.java
public class BarChart3s {
public BarChart3s(BarChart chart) {
// 数据描述
chart.setDescription("");
//背景
chart.setBackgroundColor(0xffffffff);
//定义数据描述得位置
//chart.setDescriptionPosition(2,100);
// 设置描述文字的颜色
// chart.setDescriptionColor(0xffededed);
// 动画
chart.animateY(1000);
//设置无边框
chart.setDrawBorders(false);
// 设置是否可以触摸
chart.setTouchEnabled(true);
// 是否可以拖拽
chart.setDragEnabled(true);
// 是否可以缩放
chart.setScaleEnabled(true);
//设置网格背景
chart.setGridBackgroundColor(0xffffffff);
//设置边线宽度
chart.setBorderWidth(0);
//设置边线颜色
chart.setBorderColor(0xffffffff);
// 集双指缩放
chart.setPinchZoom(false);
// 隐藏右边的坐标轴
chart.getAxisRight().setEnabled(false);
// 隐藏左边的左边轴
chart.getAxisLeft().setEnabled(true);
Legend mLegend = chart.getLegend(); // 设置比例图标示
// 设置窗体样式
mLegend.setForm(Legend.LegendForm._SQUARE_);
//设置图标位置
mLegend.setPosition(Legend.LegendPosition._LEFT\_OF\_CHART_);
// 字体
mLegend.setFormSize(4f);
//是否显示注释
mLegend.setEnabled(false);
// 字体颜色
// mLegend.setTextColor(Color.parseColor("#7e7e7e"));
//设置X轴位置
XAxis xAxis = chart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition._BOTTOM_);
// 前面xAxis.setEnabled(false);则下面绘制的Grid不会有"竖的线"(与X轴有关)
// 上面第一行代码设置了false,所以下面第一行即使设置为true也不会绘制AxisLine
//设置轴线得颜色
xAxis.setAxisLineColor(0xffffffff);
xAxis.setDrawAxisLine(false);
xAxis.setDrawGridLines(false);
xAxis.setSpaceBetweenLabels(2);
//设置Y轴
YAxis leftAxis = chart.getAxisLeft();
//Y轴颜色
leftAxis.setAxisLineColor(0xffffffff);
//Y轴参照线颜色
leftAxis.setGridColor(0xfff3f3f3);
//参照线长度
leftAxis.setAxisLineWidth(5f);
// 顶部居最大值站距离占比
leftAxis.setSpaceTop(20f);
chart.invalidate();
}
public ArrayList<BarDataSet> getDataSet() {
ArrayList<BarDataSet> dataSets = null;
ArrayList<BarEntry> valueSet1 = new ArrayList<BarEntry>();
for (int i = 0; i < 31; i++) {
float value = (float) (Math.random() \* 100/\*100以内的随机数\*/) + 3;
valueSet1.add(new BarEntry(value,i));}
ArrayList<BarEntry> valueSet2 = new ArrayList<BarEntry>();
for (int j = 0; j < 31; j++) {
float value1 = (float) (Math.random() \* 100/\*100以内的随机数\*/) + 3;
valueSet2.add(new BarEntry(value1,j));}
BarDataSet barDataSet1 = new BarDataSet(valueSet1, "目标");
barDataSet1.setColor(Color.parseColor("#45a2ff"));
barDataSet1.setBarShadowColor(Color.parseColor("#01000000"));
BarDataSet barDataSet2 = new BarDataSet(valueSet2, "实际");
barDataSet2.setColor(Color.parseColor("#6faae7"));
barDataSet2.setBarShadowColor(Color.parseColor("#01000000"));
dataSets = new ArrayList<BarDataSet>();
dataSets.add(barDataSet1);
dataSets.add(barDataSet2);
return dataSets;
}
public ArrayList<String> getXAxisValues() {
ArrayList<String> xAxis = new ArrayList<String>();
for (int j = 0; j < 31; j++){
xAxis.add("8-"+(j+1));
}
return xAxis;
}
}
4.MainActivity.java
public class MainActivity extends Activity {
private BarChart3s mBarChart3s;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
BarChart chart = (BarChart) findViewById(R.id._chart_);
BarChart chart1 = (BarChart) findViewById(R.id._chart1_);
mBarChart3s = new BarChart3s(chart);
mBarChart3s = new BarChart3s(chart1);
BarData data = new BarData(mBarChart3s.getXAxisValues(), mBarChart3s.getDataSet());
// 设置数据
chart.setData(data);
chart1.setData(data);
}
}
转自:https://blog.csdn.net/dt235201314/article/details/52242221
手机扫一扫
移动阅读更方便
你可能感兴趣的文章